问题描述
代码如下: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() 返回的值了。
解决方案二:
晕,是我错了。我觉得是button.setOnClickListener(new BundleActivity()); 这行代码有问题,但是我不知道问题出在哪里。错在这里:你不应该用 new BundleActivity(),而是应该用 this你试试看
解决方案三:
你在 editText1 和 editText2 中都输入文字试试呢。my.bundle.BundleActivity.onClick(BundleActivity.java:30) 这句指出了你的 BundleActivity 的 第 30 行抛出的这个异常
解决方案四:
bundle.putString("name", editText1.getText().toString());bundle.putString("age",editText2.getText().toString());这两个 editText 中肯定有一个是没有文字的
解决方案五:
logcat中用 ctrl+c ,可以快速复制日志的
解决方案六:
我手机看的图片太小,你贴文字吧,ctrl+c
解决方案七:
你的两个 Activity 都有在 AndroidManifest.xml中注册么?
解决方案八:
请问报的什么错?把异常信息贴出来