Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在for循环中将参数传递给onclick事件的方法_Android_Parameter Passing_Onclicklistener - Fatal编程技术网

Android 在for循环中将参数传递给onclick事件的方法

Android 在for循环中将参数传递给onclick事件的方法,android,parameter-passing,onclicklistener,Android,Parameter Passing,Onclicklistener,我正在搜索如何在我的应用程序中添加删除按钮,并在函数中从我的代码中接收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ös

我正在搜索如何在我的应用程序中添加删除按钮,并在函数中从我的代码中接收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));
for(int i=0;i

分离的_条目[6]包含我现在想在警报对话框中显示的id。但是我遇到了分离的_条目[6]的问题始终包含最后一个ID,而不是与当前条目匹配的ID,因此按钮会为所有项目显示相同的ID。是否可以将ID传递到OnClickListener函数中,然后它会工作?如果是,我将如何做?

尝试更改此行

helpBuilder.setMessage("Id: " + separated_entries[6]);


看起来每行都有一个删除按钮

如果是这样,最简单的方法可能是将每个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,并在所有删除按钮之间共享它。

有任何答案有用吗?
public void onClick(View v) {
  int theIdSetAbove = (Integer)v.getTag();
  ...