java - 如何将按钮的按钮文本存储在变量中? Android计算器项目

标签 java android

我已经在 J​​ava 中开发 Android 计算器有一段时间了,当然还有 eclipse。在我的程序中,我希望能够将 android 按钮的文本存储为一个运算符 (theOperator) 进行测试,以便我可以基于此编写一些代码。我使用 xml 将所有按钮设置为一些文本。这是一个例子:

<Button
    android:id="@+id/bMultiply"
    android:layout_width="65dp"
    android:layout_height="65dp"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/bSix"
    //// android:text="*" ///// Right here is where the text of the button is set. 
    android:textSize="40dp"
    android:onClick="onClick"
     />

现在这是我的主要代码:

package rechee.cool;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    public EditText display;
    double total1=0;
    double total2=0;
    char theOperator;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // Associate the button variable with the xml reference
        display= (EditText) findViewById(R.id.editText1);
    }
    String display1= display.getText().toString();
    // I want to store the button text of the android button as btnText. How do I do this?
    public void getOperator(String btnText){
        theOperator = btnText.charAt(0);
        double displayValue= Double.parseDouble(display1);
        total1+=displayValue;
        display.setText("");
    }
    public void onClick(View v) {
        switch(v.getId()){
            case R.id.bOne:
            display.append("1");
            break;
            case R.id.bTwo:
            display.append("2");
            break;
            case R.id.bThree:
            display.append("3");
            break;
            case R.id.bFour:
            display.append("4");
            break;
            case R.id.bFive:
            display.append("5");
            break;
            case R.id.bSix:
            display.append("6");
            break;
            case R.id.bSeven:
            display.append("7");
            break;
            case R.id.bEight:
            display.append("8");
            break;
            case R.id.bNine:
            display.append("9");
            break;
            case R.id.bZero:
            display.append("0");
            break;
            case R.id.bPoint:
            display.append(".");
            break;
            case R.id.bClear:
            display.setText("");
            break;
            case R.id.bAdd:
            getOperator(display1);
            //String theOperator= new String("+");
            break;
            case R.id.bEqual:
        }
    }
}

最佳答案

获取按钮的文本。

在你的类中放置一个变量

public class HelloAndroidActivity extends Activity {
    private String buttonText;
    private Button button;
...

然后在onCreate方法中获取按钮和文本:

@Override
public void onCreate(Bundle savedInstanceState) {
    button = (Button)findViewById(R.id.bMultiply);
    buttonText = button.getText().toString();
}

祝你好运

关于java - 如何将按钮的按钮文本存储在变量中? Android计算器项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383512/

相关文章:

Java:为什么我不能将其转换为对象?

android - 如何通过音频管理器以编程方式将振动模式更改为铃声

java - 使用 onClick() 在选项卡式 fragment 内导航

java - 无论类型如何,都从文件中读取对象,从泛型类型推断读取方法

java - UDP 网络中的绑定(bind)错误

android - 如何使用Kotlin在Android Studio中从一项 Activity 获取值(value)到另一项 Activity ?

android - 安装不再适用于 Android Q 的自签名证书

java - Android - 如何保持按钮被单击(选定)?

java - 关闭Spring AMQP中与SimpleMessageListenerContainer相关的连接

java - 试图求解运算符和数字位于两个不同列表中的数学方程式