tv忘记赋值了。。可是,还是不能运行,求解,谢谢

解决方案 »

  1.   

    楼主也不知道你哪儿Copy的代码,首先就是一边初始化控件,一边写点击事件。可不能这么干,最好是先把初始化控件的事先干完,再做逻辑处理。还有就是你这个逻辑也有错。你自己改吧。我帮你把这一大串的空指针异常处理了,
    如下:
    package app.example.test12_16;import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;public class MainActivity extends Activity {
    private TextView tv;
    private String str1;
    private String str2;
    private int flag = 0;
    private Button[] temp;
    private Button buttonJia, buttonJian, buttonCheng, buttonChu, buttonC,
    buttonDengyu;
    private int result0, result1, result;
    private int button[] = { R.id.Button00, R.id.Button01, R.id.Button02,
    R.id.Button03, R.id.Button04, R.id.Button05, R.id.Button06,
    R.id.Button07, R.id.Button08, R.id.Button09 }; @Override
    protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // 初始化控件
    temp = new Button[button.length];
    buttonC = (Button) findViewById(R.id.ButtonC);
    buttonDengyu = (Button) findViewById(R.id.ButtonDengyu);
    buttonJia = (Button) findViewById(R.id.jia);
    buttonJian = (Button) findViewById(R.id.jian);
    buttonCheng = (Button) findViewById(R.id.cheng);
    buttonChu = (Button) findViewById(R.id.chu);
    tv = (TextView) findViewById(R.id.tv);

    for (int i = 0; i < button.length; i++) {
    temp[i] = (Button) findViewById(button[i]);
    temp[i].setOnClickListener(new OnClickListener() { @Override
    public void onClick(View view) {
    str1 = tv.getText().toString().trim();
    str1 = str1 + String.valueOf(((Button) view).getText());
    tv.setText(str1);
    } });
    }
    // 清空按钮的单击事件监听器
    buttonC.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
    str1 = "";
    str2 = "";
    tv.setText(str1);
    flag = 0;
    }
    }); buttonListener(buttonJia, 1);
    buttonListener(buttonJian, 2);
    buttonListener(buttonCheng, 3);
    buttonListener(buttonChu, 4);
    buttonDengyu.setOnClickListener(new OnClickListener() { @Override
    public void onClick(View view) {
    result1 = Integer.parseInt(str1);
    if (flag == 1) { result = result0 + result1;
    System.out.println(result0 + ":" + result1); } else if (flag == 2) { result = result0 - result1; } else if (flag == 3) { result = result0 * result1; } else if (flag == 4) { result = (int) result0 / result1; }
    String str = (result + "").trim();
    tv.setText(str);
    }
    });
    } public void buttonListener(Button button, final int id) {
    button.setOnClickListener(new OnClickListener() { @Override
    public void onClick(View view) {
    String str = tv.getText().toString().trim();
    result0 = Integer.parseInt(str);
    tv.setText("");
    flag = id;
    }
    });
    }
    }