在我的应用程序中,我有一行显示要播放的音频文件的(ImageButton)icon
和(textView)title
,我使用setonclicklistener作为imagebutton启动播放该文件的进程。我还想使用(textView)title
作为一个可点击的项目来开始相同的过程。
我可以简单地在两个setonclicklisteners中复制所有功能,但这似乎不是最有效的方法。
现在我是新来的,还有这样一件事吗
ImageButton.setOnClickListener() || textView.setOnClickListener() {
.
.
.
}
基本上,如果单击imageButton或单击textView,则执行此过程。
我知道上面的语法不正确,但它让你知道我想做什么
最佳答案
让同时具有这些元素class
和ImageButton
的textView
实现OnClickListener
。OnClickListener
是一个具有方法onClick(View v)
的接口,该方法将对这两个元素都具有click实现。然后可以使用imageButton.setOnClickListener(this)
和textView.setOnClickListener(this)
。
示例代码:
public MyClass extends Activity implements OnClickListener {
ImageButton imageButton;
TextView textView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
imageButton = (ImageButton) findViewById(R.id.btn);
textView = (TextView) findViewById(R.id.txt);
imageButton.setOnClickListener(this);
textView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int viewId = v.getId() ;
if(viewId == R.id.btn || viewId == R.id.txt){
//common implementation of click event
}
}
}
希望这个解释有帮助。
关于android - 一个进程有多个setOnClickListener,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11184588/