单击按钮从Android中的EditText获取文本

时间:2014-02-05 17:04:05

标签: java android android-edittext

嗨,我正在研究android中的计算器。 我有一个编辑文本在wchich没有显示取决于特定编号的点击。例如,当用户按1它将显示1.当用户点击2时,它将显示12,依此类推。

我有这样的事情

  public class Main extends Activity implements OnClickListener {

   public static int no1=0,no2=0,op=0,flag=0;
   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    EditText display1=(EditText) findViewById(R.id.display);    


     Button one= (Button) findViewById(R.id.one);  
     one.setOnClickListener(this);
   }


public void onClick(View v) {

    if(v.getId()==R.id.one)
    {
        switch(flag)
        {
        case 1:no1*=10+1;display1.setText(no1);
        case 2:no2*=10+1;display1.setText(no2);
        }


    }

但在这里我收到错误,因为“display1无法解析”。

任何使工作的解决方案.. ??

4 个答案:

答案 0 :(得分:1)

因为它仅在您的onCreate方法中可用。将其声明为您班级中的一个字段。

private EditText display1;

答案 1 :(得分:1)

有时,完整的代码示例会有所帮助:

public class Main extends Activity implements OnClickListener {

   private int no1=0;
   private int no2=0;
   private int op=0;
   private int flag=0;
   private EditText display1;

   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);


     display1=(EditText) findViewById(R.id.display);    


     Button one= (Button) findViewById(R.id.one);  
     one.setOnClickListener(this);
   }


    public void onClick(View v) {

      if(v.getId()==R.id.one)
      {
        switch(flag)
        {
        case 1:no1*=10+1;display1.setText(no1);
        case 2:no2*=10+1;display1.setText(no2);
        }


   }
}

基本上你想将display1声明为私有实例变量。其他变量不需要是静态的,并且应该被声明为private。并且声明在单独的行上格式化以提高可读性。

玩得开心。

答案 2 :(得分:0)

全局声明EditText和Button。

答案 3 :(得分:0)

最好在EditText中保留一个字符串,这样你就不会有任何附加和删除的困难。然后你可以将它解析成一个整数,这样你就可以用它做数学。

首先,您应该声明按钮并全局编辑文本:

public class Main extends Activity implements OnClickListener {
     private EditText display1 = (EditText) findViewById(R.id.display);    
     private Button one= (Button) findViewById(R.id.one);
     private Button two= (Button) findViewById(R.id.two);    

如果您将按钮标签设置为数字,则可以使用它:

public void onClick(View view){
    display1.setText(display1.getText.toString() +  ((Button) view).getText().toString());
}    

这样,您可以将数字附加到显示中字符串的末尾。如果要使用它显示的数字,可以使用以下代码:

int number = Integer.parseInt(display1.getText().toString());