java - 为 TextView 创建 switch case onClickListener

标签 java android textview onclicklistener

我刚开始学习 Java 编程,在为我的可点击 TextView 实现 OnClickListener 开关案例时遇到了一些麻烦。我已经设法为菜单项制作了一个 switch case,但我显然对它的理解还不足以制作一个更一般的案例。

这是我的代码中对它很重要的部分

public class MyActivity extends Activity implements SensorEventListener {
TextView tv, tv1, tv2, tv3;

@Override
public void onCreate(Bundle savedInstanceState) {
//get textviews
    tv = (TextView) findViewById(R.id.xval);
    tv1 = (TextView) findViewById(R.id.yval);
    tv2 = (TextView) findViewById(R.id.zval);
    tv3 = (TextView) findViewById(R.id.scalar);

然后我为每个 TextView 设置单独的点击监听器,例如

tv1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Do things
            }
        }
    });

但我正在尝试设置它,所以我有一个组合的 OnClickListener,例如:

@Override
public boolean onClickListener (View v) {
    switch (tv.findViewById()) {
        case tv:
            //Do things
            return true;
        case tv1:
            //Do things
            return true;
        case tv2:
            //Do things
            return true;
        case tv3:
            //Do things
            return true;

}}

我知道代码是非常错误的,但我似乎无法理解它。我已经分配了我的 findViewById,所以我不确定还有什么可以放入开关!

谢谢!

最佳答案

我将提供替代答案。首先,您必须创建一个 OnClickListener,它将接收您的 OnClick 事件:

OnClickListener listener = new OnClickListener()
    {

        @Override
        public void onClick(View v)
        {
            switch (v.getId())
            {
                case R.id.xval:
                    //code
                    break;

                case R.id.yval:
                    //code
                    break;

                case R.id.zval:
                    //code
                    break;

                case R.id.scalar:
                    //code
                    break;

                default:
                    break;
            }

        }
    };

然后,您必须将该监听器关联到您拥有的每个 TextView:

tv.setOnClickListener(listener);
tv1.setOnClickListener(listener);
tv2.setOnClickListener(listener);
tv3.setOnClickListener(listener);

一旦您单击其中一个 TextViews,您的 OnclickListener onClick() 回调将被调用,它将检查 TextView 您已单击的 ID 并相应地运行代码,具体取决于具体情况。

关于java - 为 TextView 创建 switch case onClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26545997/

相关文章:

Java - 为什么这个枚举数组的输出为空?

android - 当 TextView 对象的可见性设置为 View.GONE 时,文本会发生什么情况?

java - 关于 HotSpot JVM JIT 的困惑

java - 将两个 foreach 更改为一个流

java - Android SQLiteAssetHelper 的 NullPointerException

java - 将同级项目资源添加到 Android 资源中,无需紧密耦合

android - 德尔福 'Cannot resolve unit name ' FireDac.phys.mysql'

android - 放置错误消息时 TextView 中的文本正在更改

java - 百分比计算器在 Android Studio 中无法运行

java - 如何将网络浏览器转换为代号一的本地镜像?