单击按钮时是否可以将参数传递给侦听器:
protected void onCreate(Bundle savedInstanceState) {
....
String myArg = "Hello";
Button button1 = (Button)findViewById(R.id.myButton);
button1.setOnClickListener(myListener);
String myArg = "Goodye";
Button button2 = (Button)findViewById(R.id.myOtherButton);
button2.setOnClickListener(myListener);
}
OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// print the value from the passed in argument myArg
Log.v("TEST", myArg);
}
};
这只是一个例子而不是对我实际不想做的事情的反思,但它确实说明了这个问题.
基本上我想将myArg传递给监听器,因此当单击该按钮时,它可以访问myArg变量.
我知道我可以将它作为一个内联匿名类来实现,但是我会有很多按钮,所有这些按钮的点击逻辑都是相同的.我需要参数,因为每个按钮都会有所不同.
仅供参考:我的实际用法要求参数为View对象.