繁体   English   中英

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

[英]getting text from EditText in Android on click of button

嗨,我正在使用android中的计算器。 我正在根据某个特定编号的点击显示一个EditText,例如,当用户按下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”。

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

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

private EditText display1;

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

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声明为私有实例变量。 其他变量不必是静态的,应该声明为私有。 声明在单独的行上格式化,以提高可读性。

玩得开心。

全局声明您的EditText和Button。

最好在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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM