下面是这种情况:我有一个动态生成一堆随机自定义图像按钮的活动,并将它们添加到TableView中,在TableView中,在我的xml中 . 此活动还有一个方法,我想在单击其中一个/任何一个按钮时调用 . 按钮里面有变量;该方法获取这些变量并将它们设置为TextView(在同一个活动中),因此我认为所有按钮都可以使用这一个方法 . 如果这些按钮是在XML中定义的,我会使用android:onClick =“displayCell”来指定方法,但它们不是 . 有没有办法只为这些按钮设置onClick,因为我在活动中生成它们或者我必须使用它们
button.setOnClickListener(new OnClickListener());
正如我在这里的一些答案中看到的那样经历一堆麻烦?我遇到的问题是我似乎无法从onClick内部调用我的方法,因为方法的参数(按钮)不是最终的(我在循环中制作了一堆'按钮'所以我不喜欢我认为它可以是:)
button.setOnClickListener(new OnClickListener(){public void onClick(View q){button.getActivity() . displayCell(button); //我想做这样的事情,但这显然不起作用}});
4 回答
您可以让Activity实现OnClickListener,然后(假设您在活动中):
是的comodoro状态,或者让你的onClickLIstener成为你 class 的成员变量,不要在每个按钮上做“新” .
并在创建按钮时:
监听器中的onClick()函数将传递按钮本身的视图 . 您可以从此功能访问按钮变量等 .
解决方法可能是:
创建不同的按钮实例 . (所以你可以让它们成为最终的)
使用
setId()
方法为它们提供一个整数ID(稍后再引用它们) . 您可以将ID存储在List
以便稍后引用它们 .在创建它们后立即定义它们的onClickListeners .
尝试使用从按钮继承的类并在那里添加OnClickListener . 像这样: