Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据参数显示不同的消息_Java_Android - Fatal编程技术网

Java 根据参数显示不同的消息

Java 根据参数显示不同的消息,java,android,Java,Android,我是android开发新手。我有10个不同的按钮,我想为每个按钮显示一个祝酒词。这条信息类似于: 这是按钮:“+numButton” 其中,numButton是传递给函数的道具。这是功能代码: public void displayMensaje(View v) { Toast.makeText(ActividadUno.this, "Test", Toast.LENGTH_SHORT).show(); } 这是xml: <Button andro

我是android开发新手。我有10个不同的按钮,我想为每个按钮显示一个祝酒词。这条信息类似于:

这是按钮:“+numButton”

其中,numButton是传递给函数的道具。这是功能代码:

public void displayMensaje(View v) {
        Toast.makeText(ActividadUno.this, "Test", Toast.LENGTH_SHORT).show();
    }
这是xml:

<Button
        android:id="@+id/button11"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="30dp"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="400dp"
        android:text="churro"
        android:onClick="displayMensaje"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

您可以在
按钮中投射
视图
,并获取按钮的文本

大概是这样的:

public void displayMensaje(View v) {
    Button button = (Button) v;
    String title = button.getText();
    String message = "Test " + title;
    Toast.makeText(ActividadUno.this, message, Toast.LENGTH_SHORT).show();
}  
编辑:
根据我对您下面评论的理解,您的活动中有多个按钮,您希望在单击不同按钮时显示不同的值

您可以拥有一个
地图
,其中键作为按钮标题,值作为营养值

以下是如何实现这一目标的一般示例:

public class MyActivity extends Activity {
    // Your Message Format
    private static final String MSG_FORMAT = "Item Name: %s\n"
            + "Fat: %s\n"
            + "Protein: %s\n"
            + "Calories: %s";

    // A Map to hold info of all items
    // Key = button title
    // Value = Array containing item info
    private Map<String, String[]> info = new HashMap();

    // Assuming you have 3 buttons in your activity
    private Button btnMilk;
    private Button btnEggs;
    private Button btnChicken;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_activity);

        btnMilk = (Button) findViewById(R.id.btn_milk);
        btnEggs = (Button) findViewById(R.id.btn_eggs);
        btnChicken = (Button) findViewById(R.id.btn_chicken);

        // 0 = Fat, 1 = Protein, 2 = Calories
        String[] milkInfo = new String[]{"12", "20", "125"};
        String[] eggsInfo = new String[]{"10", "50", "205"};
        String[] chickenInfo = new String[]{"50", "5", "500"};

        // load your Map with the data
        info.put(btnMilk.getText(), milkInfo);
        info.put(btnEggs.getText(), eggsInfo);
        info.put(btnChicken.getText(), chickenInfo);

    }

    public void displayMessage(View v) {
        Button button = (Button) v;

        String title = button.getText();

        // Get item info from your Map
        String[] itemInfo = info.get(title);

        // Create message using the format and values from the array
        String message = String.format(MSG_FORMAT, title, itemInfo[0], itemInfo[1], itemInfo[2]);

        Toast.makeText(MyActivity.this, message, Toast.LENGTH_SHORT).show();
    }
}
公共类MyActivity扩展活动{
//你的信息格式
私有静态最终字符串MSG\u FORMAT=“项目名称:%s\n”
+“Fat:%s\n”
+“蛋白质:%s\n”
+“卡路里:%s”;
//保存所有项目信息的地图
//键=按钮标题
//Value=包含项目信息的数组
私有映射信息=新HashMap();
//假设您的活动中有3个按钮
私人按钮btnMilk;
私人按钮;
私人按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.my_活动);
btnMilk=(按钮)findViewById(R.id.btn_milk);
btnEggs=(按钮)findviewbyd(R.id.btn_蛋);
Btchicken=(按钮)findViewById(R.id.btn_鸡);
//0=脂肪,1=蛋白质,2=卡路里
字符串[]milkInfo=新字符串[]{“12”、“20”、“125”};
字符串[]eggsInfo=新字符串[]{“10”、“50”、“205”};
字符串[]chickenInfo=新字符串[]{“50”、“5”、“500”};
//将数据加载到地图中
info.put(btnMilk.getText(),milkInfo);
info.put(btnEggs.getText(),eggsInfo);
info.put(btnChicken.getText(),chickenInfo);
}
公共无效显示消息(视图v){
按钮=(按钮)v;
字符串标题=button.getText();
//从地图中获取项目信息
字符串[]itemInfo=info.get(标题);
//使用数组中的格式和值创建消息
String message=String.format(MSG_格式,标题,itemInfo[0],itemInfo[1],itemInfo[2]);
Toast.makeText(MyActivity.this,message,Toast.LENGTH_SHORT).show();
}
}

希望这能对您有所帮助

到目前为止,您已经完成了哪些工作?您到底在哪里遇到了困难?我尝试直接在xml中传递参数,比如:android:onClick=“displayMensaje(param1,param2,param3)”并将函数更改为:public void displayMensaje(视图v,int p1,int p2,int p3)这帮了我很大的忙,这在一定程度上是我想要完成的。但我需要展示每件商品的更多属性,比如每件商品的价格one@DexterNaru请详细解释你到底想完成什么?我不知道你的应用程序或活动的具体目的是什么。我有一个食物列表(鸡蛋、牛奶、香肠、猪肉……),我想显示每种食物的营养信息(脂肪、卡路里、蛋白质……),所有信息的格式相同,但值不同