몇 가지 EditText보기를 활성화 / 비활성화하는 CheckBox가 있습니다. 처음에는 활동이 시작될 때 EditText를 클릭 할 수 있지만 CheckBox를 누른 다음 (false로 설정 됨) 확인란을 다시 누르면 (EditText가 활성화 됨으로 설정 됨) 할 수 있습니다. t EditText를 클릭합니다.
이것은 자바 코드입니다
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
final EditText etPersonTitle = (EditText)v.findViewById(R.id.et_person_title);
final EditText etFirstname = (EditText)v.findViewById(R.id.et_first_name);
final EditText etSurname = (EditText)v.findViewById(R.id.et_surname);
if(isChecked){
etPersonTitle.setText(R.string.unknown);
etFirstname.setText(R.string.unknown);
etSurname.setText(R.string.unknown);
}
else {
etPersonTitle.setText("");
etFirstname.setText("");
etSurname.setText("");
}
etPersonTitle.setEnabled(!isChecked);
etPersonTitle.setFocusable(!isChecked);
etFirstname.setEnabled(!isChecked);
etFirstname.setFocusable(!isChecked);
etSurname.setEnabled(!isChecked);
etSurname.setFocusable(!isChecked);
}
다음은 xml입니다.
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/title" />
<EditText
android:id="@+id/et_person_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="15"
android:inputType="textPersonName"
android:textAppearance="?android:attr/textAppearanceSmall" >
</EditText>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/first_name" />
<EditText
android:id="@+id/et_first_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="15"
android:inputType="textPersonName"
android:textAppearance="?android:attr/textAppearanceSmall" >
</EditText>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/surname" />
<EditText
android:id="@+id/et_surname"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="15"
android:inputType="textPersonName"
android:textAppearance="?android:attr/textAppearanceSmall" >
</EditText>
</TableRow>
<LinearLayout
android:id="@+id/ll_unknown_customer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="@string/unknown_customer" />
<CheckBox
android:id="@+id/cb_unknown_customer"
style="@style/checkbox_style"
android:background="@drawable/checkbox_background"
android:button="@null"
android:checked="false" />
</LinearLayout>
한 가지 주목할 점은 TableLayout이 ScrollView 안에 있다는 것입니다. 그게이 문제의 원인인지 확실하지 않지만 그것이 내 첫 번째 의심입니다.
setClickable (true) 시도했지만 작동하지 않습니다.
미리 감사드립니다.
이 작업을 수행.
if (isChecked) {
etPersonTitle.setText("asd");
etFirstname.setText("asd");
etSurname.setText("asd");
etPersonTitle.setEnabled(!isChecked);
etPersonTitle.setFocusable(!isChecked);
etFirstname.setEnabled(!isChecked);
etFirstname.setFocusable(!isChecked);
etSurname.setEnabled(!isChecked);
etSurname.setFocusable(!isChecked);
}
else {
etPersonTitle.setText("");
etFirstname.setText("");
etSurname.setText("");
etPersonTitle.setEnabled(true);
etPersonTitle.setFocusableInTouchMode(true);
etFirstname.setEnabled(true);
etFirstname.setFocusableInTouchMode(true);
etSurname.setEnabled(true);
etSurname.setFocusableInTouchMode(true);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다