我正在构建一个 Android 应用程序,其中包含许多我希望可点击的 TextView。
我尝试将属性 android:clickable="true"
和 android:onClick="clickHandler"
分配给单个 TextView
以及何时该应用程序触发 clickHandler(View v)
我通过 v.getId()
正确获取了点击的项目。
我不喜欢的是为每个 TextView
定义属性 android:clickable
和 android:onClick
...有什么东西我可以通过代码说:“所有 TextView 都是可点击的,点击是在 clickHandler
中处理的?”
谢谢。
最佳答案
你可以在下面做这样的事情——这样他们都有相同的处理程序:
public class sticks extends Activity implements View.OnTouchListener {
private TextView tv1;
private TextView tv2;
private TextView tv3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
tv3 = (TextView) findViewById(R.id.tv3);
// bind listeners
tv1.setOnTouchListener(this);
tv2.setOnTouchListener(this);
tv3.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// check which textview it is and do what you need to do
// return true if you don't want it handled by any other touch/click events after this
return true;
}
}
关于android - Android 中可点击的 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4613333/