Я использую флажок в своем коде, что, когда его проверенное он делает textview и editText visibles, но если я снял флажок с de флажком, они продолжают быть видимыми вместо dissapear.
Вот код:
final CheckBox save = (CheckBox) findViewById(R.id.checkbox);
save.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks, depending on whether it's now checked
if (((CheckBox) v).isChecked()) {
nameText.setVisibility(1);
editName.setVisibility(1);
} else {
nameText.setVisibility(0);
editName.setVisibility(0);
}
}
});
И часть xml, который является в Относительном Расположении:
<LinearLayout android:id="@+id/linearLayout3"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below = "@+id/linearLayout2">
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name"
android:visibility="invisible"/>
<EditText android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"/>
<CheckBox android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save" />
</LinearLayout>
Что я должен сделать для создания textView и EditText dissapear, когда я снял флажок с флажком?
Спасибо!
Используйте View.VISIBLE
, View.INVISIBLE
, View.GONE
для управления видимостью (вместо 0 и 1).
Две вещи:
Вы должны использовать setOnCheckedChangeListener()
, что сделает вашу жизнь проще.
Вы должны использовать View.GONE и View.VISIBLE вместо целых чисел для setVisibility()
.
проблема в этой части:
// Perform action on clicks, depending on whether it's now checked
if (((CheckBox) v).isChecked()) {
nameText.setVisibility(1);
editName.setVisibility(1);
} else {
nameText.setVisibility(0);
editName.setVisibility(0);
}
Вы не должны использовать целочисленные значения, а вместо этого использовать константы, предоставляемые классом view
// Выполнять действия при щелчках, в зависимости от того, установлен ли он сейчас if (((CheckBox)v).isChecked()) {
nameText.setVisibility(View.VISIBLE);
editName.setVisibility(View.VISIBLE);
} else {
nameText.setVisibility(VIEW.INVISIBLE);
editName.setVisibility(VIEW.INVISIBLE);
}
вместо невидимого вы также можете использовать GONE. тогда вашему невидимому текстовому редактору не нужно место в макете
, если вы проверите API, вы увидите, что 1 не является допустимым параметром: