java - 如何以最佳方式将单击的按钮发送到另一个 Activity ?

标签 java android object

我有一个包含 10 个按钮的 Activity ,并将有关单击的按钮的信息传输到下一个 Activity 。

    View.OnLongClickListener olongBtn = new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {

            if (v == btn1) {
                Intent intent = new Intent(MainActivity.this, AddContact.class);
                intent.putExtra("slot", "slot1");
                startActivity(intent);
            } else if (v == btn2) {
                Intent intent = new Intent(MainActivity.this, AddContact.class);
                intent.putExtra("slot", "slot2");
                startActivity(intent);
            } else if (v == btn3) {
                Intent intent = new Intent(MainActivity.this, AddContact.class);
                intent.putExtra("slot", "slot3");
                startActivity(intent);
            }
            return false;
        }
    };

    btn1.setOnLongClickListener(olongBtn);
    btn2.setOnLongClickListener(olongBtn);
    btn3.setOnLongClickListener(olongBtn);

}

我想改成这样

String slot = toString(v);
Intent intent = new Intent(MainActivity.this, AddContact.class);
intent.putExtra("slot", slot);
startActivity(intent);

但是当我这样做时,我会进入下一个 Activity ,如下所示:

android.widget.Button{6548fcd}VFED..CL...P....17.0-147.130 #7f08004f app:id/btnPayman}

但我期望按钮对象的名称。

最佳答案

要获取单击按钮的名称,请使用 ((Button)v).getText() 方法而不是 v.toString() 方法,后者返回调用对象的字符串表示形式:

String slot = (Button)v).getText().toString();
Intent intent = new Intent(MainActivity.this, AddContact.class);
intent.putExtra("slot", slot);
startActivity(intent);

关于java - 如何以最佳方式将单击的按钮发送到另一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959449/

相关文章:

java - 如何缩短 Java 中的 String 连接?

Java:如何访问没有 "getXXX"方法的对象的子对象到该子对象

javascript - 访问存储在对象中的数据

java - 使用生成类通过 2 个映射器通过 MapStruct 传输对象

java - TestNG 并行测试配置

java - 如何使用 java div 类调用唯一文本

java - 访问数组列表中的元素

android - Eclipse 在尝试启动 Android 应用程序时卡住了

方法中的 Java 循环要求额外的 return 语句

android - 重力值如何影响 Android 中的 PopupWindow.showAtLocation()