我正在搜索如何将删除按钮添加到我的应用程序中,并从函数中的代码中接收id。
for (int i = 0; i < separated_rows.length; i++) {
separated_entries = separated_rows[i].split("<cut>");
Button btnDelete = new Button(getBaseContext());
btnDelete.setText("Löschen");
btnDelete.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder helpBuilder = new AlertDialog.Builder(MainScreen.this);
helpBuilder.setTitle("Id");
helpBuilder.setMessage("Id: " + separated_entries[6]);
helpBuilder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do nothing
}
});
AlertDialog helpDialog = helpBuilder.create();
helpDialog.show();
}
});
rowOptions.addView(btnDelete);
table.addView(rowOptions,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
separated_entries [6]包含我想要显示的id,就像现在一样,只是在一个警告对话框中。但是我遇到的问题是separate_entries [6]总是包含最后一个ID,而不是与当前条目匹配的ID,因此该按钮显示所有项目具有相同的id。是否可以将id传递给OnClickListener函数并且它可以工作吗?如果是的话,我该怎么做?
答案 0 :(得分:1)
尝试更改此行
helpBuilder.setMessage("Id: " + separated_entries[6]);
要
helpBuilder.setMessage("Id: " + separated_entries[i]);
答案 1 :(得分:1)
看起来每行有一个删除按钮?
如果是这样,最简单的方法可能是将每个btnDelete的标记设置为要删除的项目的id。创建按钮后:
Button btnDelete = new Button(getBaseContext());
btnDelete.setTag(Integer.valueOf(someId);
...
然后在onClickListener中,您可以轻松地检索该ID:
public void onClick(View v) {
int theIdSetAbove = (Integer)v.getTag();
...
此外,这应该允许您创建一个OnClickListener,并在所有删除按钮中共享它。