我有以下问题:
我有一个 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);
到目前为止,我的想法是使用按钮的 id(当然),并通过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);
}
}
当我请求我的数据时,我点击的按钮会按预期设置为 "Show GR" 。其他按钮保持在“Request GR”上,这也很好。但是现在我希望这些按钮在第一次点击时更改为“显示 GR”,然后在第二次点击时开始活动。至此,按钮变为“Show GR”并直接启动活动。什么是解决方案,使这项工作?