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

时间:2012-02-21 19:02:52

标签: java android

我已经在Java上工作了一段时间,当然还有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:
        }
    }
}

2 个答案:

答案 0 :(得分:2)

获取按钮的文字。

在你的班级中加一个变量

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();
}
祝你好运

答案 1 :(得分:1)

我很抱歉,但你的措辞有点好笑。您是否正在寻找获取按钮文本的方法,因为您只需使用button.getText()即可。不确定这是不是您要找的,请告诉我。