Я добавил флажки динамически в моем методе onCreate()
. Когда один или несколько из них проверены, я хочу отобразить две кнопки. Я новичок в работе с Android, но из того, что я могу сказать, это не сработает, чтобы сделать эту проверку (см. Если флажки отмечены) в том же методе, что и флажки, то есть onCreate()
, потому что они не могут быть найдены , т. е. еще не созданы? Если это так, в каком методе я должен выполнить проверку? Я хочу добавить флажки при запуске этой операции и проверить, все ли флажки проверены.Где проверяется, установлен ли CheckBox динамически? (Android)
Эти флажки добавлены в displayEntries(db)
.
Вот мой OnCreate():
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DatabaseHandler db = new DatabaseHandler(this);
displayEntries(db);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, AddActivity.class); //FromActivity.this
startActivity(i);
}
});
checkChecked();
}
checkChecked():
public void checkChecked() {
//Check whether items have been checked
TableLayout tl = (TableLayout) findViewById(R.id.entry_table);
for (int i = 0; i < tl.getChildCount(); i++) {
View child = tl.getChildAt(i);
if (child instanceof CheckBox) {
CheckBox checkBoxChild = (CheckBox) child;
Log.d("Checkbox", "Checkbox is found");
if (checkBoxChild.isChecked()) {
Log.d("Checkbox", "working!");
Button button1 = (Button) findViewById(R.id.button_edit);
button1.setVisibility(View.INVISIBLE);
Button button2 = (Button) findViewById(R.id.button_delete);
button2.setVisibility(View.INVISIBLE);
}
}
}
}
(На данный момент я пытаюсь сделать кнопки невидимым как вы могли видеть выше, так как Я не хотел «жестко кодировать» в файле макета, с которого они должны быть невидимыми для начала, - подумал, что это может сделать невозможным изменить? Но это вопрос позже ...)
EDIT: Я понял, что моя ошибка заключалась в том, что флажки, где дети моего TableLayout. На самом деле они были детьми рядов в TableLayout. Теперь, когда мне удалось установить фактический флажок, я могу заставить кнопки исчезнуть, установив их как невидимые при их создании и видимых onClick. Оставшаяся проблема заключается в том, что кнопки, конечно, остаются видимыми, даже если все кнопки снова не отмечены. Любые идеи по включению и выключению кнопок в зависимости от того, отмечены ли любые из этих флажков?
Я не уверен, но, возможно, вы все-таки поняли мой вопрос. Это решение дало мне рабочее решение для проверки, хотя для флажков, которые я не создал динамически при запуске (думал, что мое решение работало раньше, но это не так). Но где поставить этот код так, чтобы флажки действительно были созданы, когда я хочу их проверить? – Ingrid
ОК, так как я добавил в свой вопрос, он работает, чтобы сделать их видимыми в onCreate(). Благодаря! Я бы очень хотел сделать их невидимыми, когда все флажки не отмечены, но это может быть еще один вопрос. – Ingrid
Похоже, у вас есть две проблемы, которые необходимо решить. 1 - сохранять/восстанавливать состояние динамически добавленных флажков в onPause() onResume, когда ваши циклы активности. И 2 вам нужно прислушиваться к изменению этих флажков как группы. Верный? –