使用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. 开发问题记录——AE开发提示80040111错误

    System.runtime.interpServices.ComException(0X80040111): 80040111 ClassFactory无法供应请求的类(异常来自HRESULT:0X ...

  2. php 批量替换html标签的实例代码

    php批量替换html标签的实例代码分享.   1.把html元素全部去掉,或者保留某几个html标签 <?php $text = '<p>Test paragraph.</p ...

  3. Linux tar 解压缩命令

    tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个 ...

  4. 【转】#ifdef __cplusplus深度剖析

    原文:http://bbs.ednchina.com/BLOG_ARTICLE_251752.HTM 时常在cpp的代码之中看到这样的代码:     #ifdef __cplusplus extern ...

  5. poj 3415 Common Substrings 后缀数组+单调栈

    题目链接 题意:求解两个字符串长度 大于等于k的所有相同子串对有多少个,子串可以相同,只要位置不同即可:两个字符串的长度不超过1e5; 如 s1 = "xx" 和 s2 = &qu ...

  6. Python for 循环 失效

    昨天发现一个负责处理观察者模式的基类工作失败,默认的N个观察者负责处理 发送的一些东西, 其中提供一个内置接口移除观察者: def removeObserver(self, observer): if ...

  7. Kinetic使用注意点--group

    new Group(config) 参数: config:包含所有配置项的对象. { x: "横坐标", y: "纵坐标", width: "宽度&q ...

  8. DataGrid中取HyperLinkColumn列的值,处理DataGrid中绑定的特殊字符

    DataGrid中取HyperLinkColumn列的值. /// <summary> /// 对datagrid中标签进行编码,处理特殊字符 /// </summary> / ...

  9. iOS Icon尺寸、iPhone Ratina 分辨率

    高清晰度的iPhone和iPod touch(单位:像素) 启动影像 :640 x 960 APP图标:114 x 114 App Store商店:1024 x 1024 Spotlight搜索小图标 ...

  10. eval()字符串转成对象

    var s = "{a:1,b:2}"; console.log(typeof s); s = eval("(" + s + ")"); c ...