【发布时间】:2013-07-22 18:14:13
【问题描述】:
基本上我是在 for 循环中创建按钮,我需要每个按钮在按下时返回不同的值。
我曾认为创建我自己的 onClickListener() 并在初始化时将所需的数据作为参数传递是可行的。我想出的内容似乎没有语法错误,但是在运行时单击按钮时,应用程序崩溃了。
这是我目前所拥有的简化版本。
int counter = 1;
for( Program element : someList)
{
//some other code for dynamically creating textviews to stick the buttons in
//code which creates the buttons on the fly
moreInfo = new Button(this);
moreInfo.setText("More Info");
moreInfo.setOnClickListener(new DynamicOnClickListener(counter));
counter++;
}
自定义监听类
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class DynamicOnClickListener implements OnClickListener
{
int counter;
public DynamicOnClickListener(int acounter) {
this.counter = acounter;
}
public void onClick(View v) {
Log.v("DynamicOnClickListener","1");
Toast.makeText(v.getContext(), counter, Toast.LENGTH_LONG).show();
}
}
所以理论上如果这可行,每个按钮都会返回一个不同的数字,希望这是有道理的。
【问题讨论】:
-
它是如何崩溃的? (logcat)
-
非常需要logcat :)
标签: java android onclicklistener