代码如下:
public class BundleActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private Button button;
private EditText editText1;
private EditText editText2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button =(Button) findViewById(R.id.myButton);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
button.setOnClickListener(new BundleActivity());
}
public void onClick(View v) {
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("name", editText1.getText().toString());
bundle.putString("age",editText2.getText().toString());
intent.putExtras(bundle);
intent.setClass(BundleActivity.this, ForwardActivity.class);
startActivity(intent);
}
}
当BundleActivity类实现OnClickListener接口是,出现异常无法请求下一个ForwardActivity类?这是为什么?不吝赐教!!
我试过了,但不知道为什么?为什么new BundleActivity() 不对呢?
因为你当前画面中 editText1 和 editText2 实例是属于 BundleActivity.this 的,你再 new 一个 BundleActivity 出来,那么它的 editText1 和 editText2 均为null(因为它没有调用 onCreate()),更不用谈它们的 getText() 返回的值了。
请问报的什么错?
把异常信息贴出来
你的两个 Activity 都有在 AndroidManifest.xml中注册么?
我手机看的图片太小,你贴文字吧,
ctrl+c
logcat中用 ctrl+c ,可以快速复制日志的
[code="java"]
bundle.putString("name", editText1.getText().toString());
bundle.putString("age",editText2.getText().toString());
[/code]
这两个 editText 中肯定有一个是没有文字的
你在 editText1 和 editText2 中都输入文字试试呢。
[code="java"]
my.bundle.BundleActivity.onClick(BundleActivity.java:30)
[/code]
这句指出了你的 BundleActivity 的 第 30 行抛出的这个异常
晕,是我错了。
我觉得是button.setOnClickListener(new BundleActivity()); 这行代码有问题,但是我不知道问题出在哪里。
错在这里:你不应该用 new BundleActivity(),而是应该用 this
你试试看