import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.support.v4.app.NavUtils;
import android.text.Editable;
import android.text.Selection;@SuppressLint({ "ParserError", "ParserError" })
public class CountMainActivity extends Activity {
Button button0 ;
Button button1 ;
Button button2 ;
Button button3 ;
Button button4 ;
Button button5 ;
Button button6 ;
Button button7 ;
Button button8 ;
Button button9 ;
Button button10 ;
Button button11 ;
Button button12 ;
Button button13 ;
Button button14 ;
OnClickListener listener0 = null ;
OnClickListener listener1 = null ;
OnClickListener listener2 = null ;
OnClickListener listener3 = null ;
OnClickListener listener4 = null ;
OnClickListener listener5 = null ;
OnClickListener listener6 = null ;
OnClickListener listener7 = null ;
OnClickListener listener8 = null ;
OnClickListener listener9 = null ;
OnClickListener listener10 = null ;
OnClickListener listener11 = null ;
OnClickListener listener12 = null ;
OnClickListener listener13 = null ;
OnClickListener listener14 = null ;
//定义每个Button和对每个Button进行监听
EditText editText1;//定义一个变量用来接收buttonlistener传来的数据
private int  editText1_value1;
private int  editText1_value2;
private boolean bl = true;
private int result = 0;
private View vi ;    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        listener0 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"7");
}
        
        };
        listener1 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"8");
}
        
        };
        listener2 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"9");
}
        
        };
        listener3 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"4");
}
        
        };
        listener4 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"5");
}
        
        };
        listener5 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"6");
}
        
        };
        listener13 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"0");
}
        
        };
        listener6 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"1");
}
        
        };
        listener7 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"2");
}
        
        };
        listener8 = new OnClickListener(){ @Override
public void onClick(View arg0) {
editText1.setText(editText1.getText().toString()+"3");
}
        
        };
        
        listener9 = new OnClickListener(){ @Override
public void onClick(View v) {
editText1_value1 = Integer.parseInt(editText1.getText().toString());
String s = "";

s = editText1.getText().toString();
editText1.setText(s);
editText1_value2 = Integer.parseInt(s);
result = editText1_value1 * editText1_value2 ;
}
        
        };

        listener14 = new OnClickListener(){ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
editText1.setText(result);
}
        
        };
        

        setContentView(R.layout.activity_count_main);
        button0 = (Button) findViewById(R.id.button1);
        button0.setOnClickListener(listener0);
        button1 = (Button) findViewById(R.id.button2);
        button1.setOnClickListener(listener1);
        button2 = (Button) findViewById(R.id.button3);
        button2.setOnClickListener(listener2);
        button3 = (Button) findViewById(R.id.button4);
        button3.setOnClickListener(listener3);
        button4 = (Button) findViewById(R.id.button5);
        button4.setOnClickListener(listener4);
        button5 = (Button) findViewById(R.id.button6);
        button5.setOnClickListener(listener5);
        button6 = (Button) findViewById(R.id.button7);
        button6.setOnClickListener(listener6);
        button7 = (Button) findViewById(R.id.button8);
        button7.setOnClickListener(listener7);
        button8 = (Button) findViewById(R.id.button9);
        button8.setOnClickListener(listener8);
        button9 = (Button) findViewById(R.id.button10);
        button9.setOnClickListener(listener10);
        button10 = (Button) findViewById(R.id.button11);
        button11 = (Button) findViewById(R.id.button12);
        button12 = (Button) findViewById(R.id.button13);
        button13 = (Button) findViewById(R.id.button14);
        button13.setOnClickListener(listener13);
        button14 = (Button) findViewById(R.id.button15);
        button14.setOnClickListener(listener14);
        editText1 = (EditText)findViewById(R.id.editText1);  
    }
       
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_count_main, menu);
        return true;
    }    
}
这2处真心想不到怎么弄了,求高手解答。情况是这样的,我暂时只做了乘法,但是我只能生成一个editText1_value1,其他的不能生成了,我让editText1.setText("");都设置不了不知道哪里出问题了,求高手解答!!!

解决方案 »

  1.   

    button14 = (Button) findViewById(R.id.button15);
    故意这样写的吗?
      

  2.   

    额,我习惯了从0-14,但是xml默认的生成1-15
      

  3.   

    可以debug看看,click有没有给调用
      

  4.   

    给一个flag用以判断是第一次输入还是第二次输入
    如果是第一次输入就把值赋给被乘数 
    如果是第二次输入就计算结果 显示
      

  5.   

    另外 
    可以用一个OnClickListener处理所有的按键 你这样对象太多
    在OnClick里用switch判断是哪个按键就行了public void onClick(View v) {
        // TODO Auto-generated method stub
        if(v == btn1){
            //Things to do  
        }
        if(v == btn2){
            //Things to do      
        }
        if(v == btn3){
            //Things to do  
        } 
    }
      

  6.   

    全局变量
    boolean firstIsLoaded = false;public void onClick(View v) {
       if(firstIsLoaded){
          result *= Integer.parseInt(editText1.getText().toString()) ;
          //然后显示result
       }else{
          result = Integer.parseInt(editText1.getText().toString());
       }
    }
      

  7.   

    忘了点东西
    public void onClick(View v) {
       if(firstIsLoaded){
          result *= Integer.parseInt(editText1.getText().toString()) ;
          firstIsLoaded=false;
          //然后显示result
       }else{
          result = Integer.parseInt(editText1.getText().toString());
          firstIsLoaded=true;
       }
    }
      

  8.   

    还是不能覆盖掉前面的值而且也不能做计算我把代码发给你看哈,看哪里出错了~!~       listener10 = new OnClickListener(){ @Override
    public void onClick(View v) {
       if(bl){
      editText1.setText(editText1.getText().toString());
          result *= Integer.parseInt(editText1.getText().toString()) ;
          bl=false;
          //然后显示result
       }else{
          result = Integer.parseInt(editText1.getText().toString());
          if(bl==false)
           editText1.setText("");
          bl=true;
       }
    }
            
            };
      

  9.   

    能不能把所有的按键都保存在Stringbuffer里面然后在对字符串分析可以采用逆波兰表达式的方式处理!
      

  10.   

    可以把所有的按键产生的值一次添加在一个StringBuffer里面,然后用逆波兰表达式处理StringBuffer的值。
      

  11.   

    大哥... 你是没看懂么...
    我注释的地方是叫你写将result显示给editText的语句的...另外 从editText1取值又赋给editText1是什么意思
      

  12.   

    else里边再判断bl有何意义....
    else里边bl肯定是false啊...=.=