package com.Ativity;import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
//1.在Activity03中要申明四个控件
//2.要为其中的两个控件设置显示的值
//3.创建一个监听器类,监听按钮按下的
//4.将监听器的类的对象,绑定在按钮对象上
public class Activity_03Activity extends Activity {
    /** Called when the activity is first created. */
private EditText factorOne;
private EditText factorTwo;
private TextView symbol;
private Button calculate;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //根据控件的Id来取得代表控件的对象
        factorOne = (EditText)findViewById(R.id.factorOne);
        factorTwo = (EditText)findViewById(R.id.factorTwo);
        symbol = (TextView)findViewById(R.id.symbol);
        calculate = (Button)findViewById(R.id.calculate);
        //为symbol和calculate设置显示的值
        //symbol.setText("乘以");
        //calculate.setText("计算");
        symbol.setText(R.string.symbol);
        calculate.setText(R.string.calculate);
        //将监听器的对象绑定到按钮对象
        calculate.setOnClickListener(new CalculateListener());        
    }
    //监听器
class CalculateListener implements OnClickListener{ public void onClick(View v)
{
// TODO Auto-generated method stub
//取得两个EditText控件的值
String factorOneStr = factorOne.getText().toString();
String factorTwoStr = factorTwo.getText().toString();
//将这两个之存放到Intent对象中
Intent intent = new Intent();
intent.putExtra("one", factorOneStr);
intent.putExtra("two", factorTwoStr);
intent.setClass(Activity_03Activity.this,ResultActivity.class);
//使用这个Intent对象来启动ResultActvity 
Activity_03Activity.this.startActivity(intent);
}

}
}
package com.Ativity;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
//首先从Activity_03中所传递的值
//计算两个数的积
//将计算的结果显示在Activity上
public class ResultActivity extends Activity
{
private TextView resultView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
resultView = (TextView)findViewById(R.id.result);
//得到Intetn对象当中的值
Intent intent = getIntent();
String factorOneStr = intent.getStringExtra("one");
String factorTwoStr = intent.getStringExtra("two");
int factorOneInt = Integer.parseInt(factorOneStr);
int factorTwoInt = Integer.parseInt(factorTwoStr);
//计算两个数的积
int result = factorOneInt * factorTwoInt;
resultView.setText(result + "");

}


}

解决方案 »

  1.   


    调用如下类型转换方法时,判别下factorOneStr、factorTwoStr是否为null
    int factorOneInt = Integer.parseInt(factorOneStr);
    int factorTwoInt = Integer.parseInt(factorTwoStr);最好的办法是在发送Intent跳转前,判别需要传的参数是否属于非法值~    如果非法值  增加提示信息   如果OK  就跳转    也就不需要再int factorOneInt = Integer.parseInt(factorOneStr); 去判别null什么的了