在我的应用程序中,我有一行显示要播放的(ImageButton)icon
和(textView)title
音频文件,我使用setOnClickListener为ImageButton启动播放该文件的进程。我还想使用(textView)title
作为可点击项来开始相同的过程。
我可以简单地复制setOnClickListeners中的所有功能,但这似乎不是最有效的方法。
现在我是新人,所以有这样的事情
ImageButton.setOnClickListener() || textView.setOnClickListener() {
.
.
.
}
基本上,如果单击ImageButton或单击textView,请执行此过程。
我知道上面的语法不正确,但它让你知道我想做什么
答案 0 :(得分:3)
让具有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
}
}
}
希望这个解释有所帮助。
答案 1 :(得分:1)
ImageButton iv=(ImageButton)findViewById(R.id.imagebutton1);
TextView tv=(TextView)findViewById(R.id.textview1);
iv.setOnClickListener(OnClick);
tv.setOnClickListener(OnClick);
在 OnCreate()方法中添加此项,然后添加此方法,如下所示
private OnClickListener OnClick=new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.imagebutton1:{
// do here code what u want on imagebutton click
break;}
case R.id.textview1:{
// do here code what u want on textview click
break;}
}
}
}
};
答案 2 :(得分:0)
将图像按钮和textview放在布局中并为其指定ID。然后为布局实现onClickListener,这样你只需要编写一次代码。