Android开发之一个未解决的bug
2015-10-12 16:28
477 查看
使用Activity之间传递数据的时候,出现了一个bug,但是没有找到哪里出错了。
把代码和log都记录下来,以后研究
代码:
MainActivity.class
ThreeActivity.class
Log
具体什么原因造成的,目前我还无法确定,等待能力提高以后,回头看看这个问题。
把代码和log都记录下来,以后研究
代码:
MainActivity.class
package com.example.caradviser; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private static final String TAG = "com.example.caradviser"; TextView showBackText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); showBackText=(TextView) findViewById(R.id.backMainActivity); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); switch (requestCode) { case 123123: if (resultCode==RESULT_OK) { if (intent==null||"".equals(intent)) { Toast.makeText(MainActivity.this, "获取到的数据为空", Toast.LENGTH_SHORT).show(); }else { String getData = intent.getStringExtra("data_return"); showBackText.setText(intent.getStringExtra("data_return")); } } break; default: break; } } public void toAnotherActivity3(View v){ String data ="Hello,这是传递的数据"; Intent intent = new Intent(MainActivity.this,ThreeActivity.class); intent.putExtra("haha", data); startActivityForResult(intent, 123123); } }
ThreeActivity.class
package com.example.caradviser; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class ThreeActivity extends Activity { private Button backToMainActivity; private String data; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.three_layout); Intent intent = getIntent(); data = intent.getStringExtra("haha"); textView = (TextView) findViewById(R.id.showText); if (TextUtils.isEmpty(data)) { Toast.makeText(ThreeActivity.this, "没有接收到其他activity的数据", Toast.LENGTH_SHORT).show(); }else { textView.setText(data); } backToMainActivity = (Button) findViewById(R.id.backMainActivity); backToMainActivity.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); String data3= "将要返回到MainActivity"; intent.putExtra("data_return", data3); setResult(RESULT_OK,intent); finish(); } }); } }
Log
10-12 16:22:02.304: E/AndroidRuntime(16265): FATAL EXCEPTION: main 10-12 16:22:02.304: E/AndroidRuntime(16265): Process: com.example.caradviser, PID: 16265 10-12 16:22:02.304: E/AndroidRuntime(16265): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=123123, result=-1, data=Intent { (has extras) }} to activity {com.example.caradviser/com.example.caradviser.MainActivity}: java.lang.NullPointerException 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.app.ActivityThread.deliverResults(ActivityThread.java:3375) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3418) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.app.ActivityThread.access$1300(ActivityThread.java:141) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1261) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.os.Handler.dispatchMessage(Handler.java:102) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.os.Looper.loop(Looper.java:136) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.app.ActivityThread.main(ActivityThread.java:5072) 10-12 16:22:02.304: E/AndroidRuntime(16265): at java.lang.reflect.Method.invokeNative(Native Method) 10-12 16:22:02.304: E/AndroidRuntime(16265): at java.lang.reflect.Method.invoke(Method.java:515) 10-12 16:22:02.304: E/AndroidRuntime(16265): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 10-12 16:22:02.304: E/AndroidRuntime(16265): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 10-12 16:22:02.304: E/AndroidRuntime(16265): at dalvik.system.NativeStart.main(Native Method) 10-12 16:22:02.304: E/AndroidRuntime(16265): Caused by: java.lang.NullPointerException 10-12 16:22:02.304: E/AndroidRuntime(16265): at com.example.caradviser.MainActivity.onActivityResult(MainActivity.java:42) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.app.Activity.dispatchActivityResult(Activity.java:5441) 10-12 16:22:02.304: E/AndroidRuntime(16265): at android.app.ActivityThread.deliverResults(ActivityThread.java:3371) 10-12 16:22:02.304: E/AndroidRuntime(16265): ... 11 more
具体什么原因造成的,目前我还无法确定,等待能力提高以后,回头看看这个问题。
相关文章推荐
- Android Studio Tips -- 自定义Logcat
- Android Studio Tips -- 布局预览
- Android Studio系列教程五--Gradle命令详解与导入第三方包
- Android Studio系列教程四--Gradle基础
- android客户端学习-开关按钮
- android之Activity
- Android Studio系列教程三--快捷键
- Android Studio系列教程二--基本设置与运行
- 关于操作栏actionBar的添加移除总结
- Android Studio系列教程四--Gradle基础
- Android ImageCropper 矩形 圆形 裁剪框
- Android Binder设计与实现 – 设计篇(二)
- Android与JavaScrpit相互调用
- Android Binder设计与实现 - 设计篇
- android客户端学习-button按钮边框及圆角
- android studio 如何更改SDK
- android host修改
- android---动态管理控件
- android 应用程序框架
- Android内存泄露案例分析