gpt4 book ai didi

java - 初学者 - 在 findViewById 和字符串或 TextView 赋值中连接变量的语法

转载 作者:行者123 更新时间:2023-12-01 08:54:28 25 4
gpt4 key购买 nike

我是 Android 编程新手,经验很少,我会尝试提出正确的问题,但如果我的某些理解不太符合要求,我深表歉意。

我正在构建一个带有按钮 0 到 9 的基本计算器应用程序。用户可以使用这些按钮将该特定数字输入到文本字段中。

我有相同的代码(如下)来为所有 0 到 9 按钮执行按钮操作。就在哪里可以看到数字 1,它被替换为该按钮的相关数字。

        Button button1 = (Button) findViewById(R.id.button_calc_1);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String number_1 = ("1");
TextView Insert_Number_1 = (TextView ) findViewById(R.id.editTextoutput);
TextView Insert_Number_1_view = (TextView) findViewById(R.id.CurrentDisplay);
Insert_Number_1.append(number_1);
Insert_Number_1_view.append(number_1);

}
});

所以我正在编写相同代码的子例程,然后我可以调用相关按钮。

        public String numberbuttons(String value){
Button button1 = (Button) findViewById(R.id.button_calc_1);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String number_1 = ("1");
TextView Insert_Number_1 = (TextView ) findViewById(R.id.editTextoutput);
TextView Insert_Number_1_view = (TextView) findViewById(R.id.CurrentDisplay);
Insert_Number_1.append(number_1);
Insert_Number_1_view.append(number_1);

}
});

}

请记住,这是一项正在进行的工作。

我的问题基本上是如何将变量 numberbuttons 添加到 Button_calc_(在此处插入 numberbuttons)

编辑:

好的,从第二个代码块开始。我想在 findViewById(R.id.button_calc_1) 中使用 numberbuttons 变量。

所以在我的脑海里我想象的是这样的。

findViewById(R.id.button_calc_+(numberbuttons);  

当我调用 TextView 时也是如此。我想象的就是这样的。

TextView  Insert_Number_+(numberbuttons) = (TextView ) findViewById(R.id.editTextoutput);

最佳答案

findViewById() 方法需要一个整数,而不是一个字符串,因此您不能只传入一个带有您尝试使用的按钮名称的字符串。当您使用 R.id.xxx 时,您正在传递对资源的引用,这实际上只是一个 int。

为了实现您想要的目的,我建议使用某种类型的列表来存储按钮,然后循环遍历它。请参阅下面的示例。

ArrayList<Button> buttons = new ArrayList<>();

buttons.add((Button) findViewById(R.id.button1)); //Do this for all the buttons.

for(Button b : buttons){
b.setText("1"); //Do whatever you need to each button in here.
}

如果您想使用一种方法来管理所有按钮,您也可以这样做!

changeButton((Button) findViewById(R.id.button1));

private void changeButton(Button b){
//Change the button
}

编辑:

如果我理解正确的话,为了与您的问题更相关,请为每个问题添加一个事件处理程序。

ArrayList<Button> buttons = new ArrayList<>();

buttons.add((Button) findViewById(R.id.button1)); //Do this for all the buttons.

for(int i = 0; i < buttons.size(); i++){
Button b = buttons.get(i);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String number = String.valueOf(i);
TextView Insert_Number_1 = (TextView ) findViewById(R.id.editTextoutput);
TextView Insert_Number_1_view = (TextView) findViewById(R.id.CurrentDisplay);
Insert_Number_1.append(number_1);
Insert_Number_1_view.append(number_1);

}
});
}

关于java - 初学者 - 在 findViewById 和字符串或 TextView 赋值中连接变量的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42143380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com