使用Activity之间传递数据的时候,出现了一个bug,但是没有找到哪里出错了。

把代码和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开发之一个未解决的bug的更多相关文章

  1. [Android开发那点破事]解决android.os.NetworkOnMainThreadException

    [Android开发那点破事]解决android.os.NetworkOnMainThreadException 昨天和女朋友换了手机,我的iPhone 4S 换了她得三星I9003.第一感觉就是好卡 ...

  2. Android开发中查看未root真机的app数据库

    在Android开发中,如果用到数据库来储存数据,那么难免就要查看数据库中的内容,可是对于未root的真机来说,查看数据库就不是那么容易了,如果仅仅为了查看数据库再把手机root了,有点得不偿失,所以 ...

  3. android开发 app闪退后fragment重叠bug解决方法,推荐使用第二种方法,完美解决问题

    解决方案为以下两种: 方法1:在fragmentActivity里oncreate方法判断savedInstanceState==null才生成新Fragment,否则不做处理. 方法2:在fragm ...

  4. Android开发--Apache服务器安装,解决Apache服务无法启动的问题

    昨天学习Android XML解析的时候,想在自己的电脑上搭建一个最简单的Web服务器来存放一段XML文本,然后在Android程序中解析,查找了一些资料后,看到Apache服务器比较容易上手,使用范 ...

  5. android开发步步为营之65:解决ScrollView和ListView触摸事件onInterceptTouchEvent相互冲突问题

    近期项目里面有个需求,一个页面放了一个ScrollView,整个页面能够向上滚动,然后ScrollView里面又嵌套了一个ListView,ListView里面的数据也是能够上下滑动的,理论上List ...

  6. Android开发环境搭建篇详尽的教程实例汇

    原文链接:http://android.eoe.cn/topic/android_sdk 一.android开发环境搭建图文教程整理篇: 1.Android开发环境搭建全程演示(jdk+eclip+a ...

  7. windows8.1下android开发环境搭建(Eclipse+Android sdk+ADT+Genymotion)

    一.基本jdk.eclipse环境 二.android sdk 1.下载安装:https://developer.android.com/sdk/installing/index.html?pkg=t ...

  8. Android开发环境搭建相关文章列表(转载)

    Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1, ...

  9. Android开发系列(十五):【Android小游戏成语连连看】第一篇

            学了一个多月安卓.由于暑假的时候要给朋友说写个小游戏.并且也想检測下自己的能力,所以说从7号開始就着手写这个小游戏了,前前后后带上课到今天总算是写完了,可是写的这个小游戏还是有非常多问 ...

随机推荐

  1. discuz管理中心无法登陆

    检查下配置文件,当前管理是不是创始人. 如是,那试下修改数据库,在数据表出错时也会这样,还有一个也同时试下 \config\config_global.php 文件 $_config['admincp ...

  2. C 语言循环之break、continue

    在C 编程的过程中,我们很多时候都会用到循环,但有时需要中途跳出整个循环,或跳过某一次循环,这时就需要用到break或continue,关于二者的使用很多书籍和博文都有很相近的说明,此处不做任何讲解, ...

  3. Django Tutorial 学习笔记

    实际操作了Django入门教程中的范例,对一些细节有了更清晰的掌握.感觉只看文档不动手是不行的,只看文档没法真正掌握其中要素之间的关系,看了很多遍也不行,必须动手做了才能掌握.同时,这次练习在Ecli ...

  4. 大型网站用什么技术比较好,JSP,PHP,ASP.NET

    大型网站,我建议要考虑的问题: 首先讨论一下大型网站需要注意和考虑的问题. 数据库海量数据处理:负载量不大的情况下select.delete和update是响应很迅速的,最多加几个索引就可以搞定,但千 ...

  5. 数据可视化(三)- Seaborn简易入门

    本文内容来源:https://www.dataquest.io/mission/133/creating-compelling-visualizations 本文数据来源:http://www.cdc ...

  6. Android UI学习前言:Android UI系统的知识结构

    Android UI系统的知识结构如下图所示: 对于 一个GUI系统地使用,首先是由应用程序来控制屏幕上元素的外观和行为,这在各个GUI系统中是不相同的,但是也具有相通性.Android系统在这方面, ...

  7. JavaScript 常用方法总结

    经常使用的 JS 方法,今天记下,以便以后查询 /* 手机类型判断 */ var BrowserInfo = { userAgent: navigator.userAgent.toLowerCase( ...

  8. PHP数组的操作

    一.数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复 ...

  9. OnDrawGizmos函数

    如果你想绘制可被点选的gizmos,执行这个函数. 这允许你在场景中快速选择重要的物体. 注意: OnDrawGizmos使用相对鼠标坐标 using UnityEngine; using Syste ...

  10. Nhibernate 多对多级联删除

    在网上找到的方法:查看这里 //-------------------------------------Article.hbm.xml-------------------------------- ...