У меня есть следующая проблема:TableLayout, различные действия кнопок в зависимости от данных в TableRow
У меня есть TableLayout вместе с несколькими TableRows, которые динамически создаются. В правой части каждой строки я создаю кнопку, которая должна вызвать другое действие. Теперь я хочу передать некоторую информацию с intent.putExtra()
. В этом случае я хочу передать номер строки, которая также является первой информацией в строке. Вот картина текущего состояния:
Это, как я создаю кнопки во время выполнения (в цикле):
Button b1 = new Button (this, null, android.R.attr.buttonStyleSmall);
b1.setId(1000+grButtonId);
b1.setText("Request GR");
b1.setLayoutParams(params);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// Some code, taken out for clarity
// See next code snippet
}
});
grButtonId++;
tr.addView(b1);
Моя идея до сих пор является использование идентификатор кнопки (конечно), и получите номер строки на значение grButtonId
.
Сейчас идет моя проблема, давайте подробно рассмотрим мой onClick
метод:
@Override
public void onClick(View view) {
// finished is true, as soon as GRRequest has recieved the data
if(!finished & !dataRequested){
new GRRequest().execute(getIntent().getLongExtra("poNr", 0),(long)view.getId());
b1.setText("Show GR");
Log.d("DataList", detailList.toString());
dataRequested=true;
}
else{
if (dataRequested){
b1.setText("Show GR");
}
Intent intent = new Intent(DataTableCreater.this, GRTableCreater.class);
intent.putExtra("lineNr",view.getId());
intent.putExtra("dataList", detailList);
startActivity(intent);
}
}
Когда я прошу моих данных, кнопку я нажал на получает значение «Показать GR», как и предполагалось. Остальные кнопки остаются на «Request GR», это тоже прекрасно. Но теперь я хочу, чтобы эти кнопки изменились на «Показать GR» при первом нажатии, а во втором - запуск активности. К настоящему времени кнопки переключаются на «Показать GR» и непосредственно запускают действие. Что было бы решением, чтобы сделать эту работу?