使用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. 【转】DataGridView之为每行前面添加序号

    //最简单的方法是在Datagridview的事件RowPostPaint事件下面添加如下代码即可 private void dataGridView1_RowPostPaint(object sen ...

  2. linux实现nginx按照日期存储日志

    通过shell脚本实现+定时任务+nginx信号管理实现日志按日期存储. 1.编写shell脚本,实现日志按日期存储 #!/bin/bash base_path='/home/wwwlogs/' lo ...

  3. ecshop 全站自定义title标题

    对于SEO来说,能让标题自定义的将会大大增加SEO效果,提高独立商城的流量,今天小编就收集从网上弄来ecshop全站自定义代码,很全哦! 1.Ecshop商品分类页如何实现自定义Title 最近发现很 ...

  4. thinkphp操作数据库

    1.实现or操作: $where=array( 'city'=>array('like',array('%'.$_GET['city'].'%')); 'hangye'=>array('l ...

  5. Ping的过程详解

    先看拓朴图: 我在这里讲拼的两情况,一种是同一网段内,一种是跨网段的ping …. 首先,如果主机A,要去拼主机B,那么主机A,就要封装二层报文,他会先查自己的MAC地址表,如果没有B的MAC地址,就 ...

  6. flex打印图片

    <?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx=& ...

  7. iOS:横向使用iPhone默认的翻页效果

    大致思路使用两层辅助UIView的旋转来实现添加后的View的横向翻页效果 CATransform3D transformA = CATransform3DRotate(CATransform3DId ...

  8. EXTJS 4.2 资料 控件之Window窗体自动填充页面

    1.html页面代码: <div id="component" style="width:100%;height:100%"> <body&g ...

  9. Android Studio 单刷《第一行代码》系列目录

    前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...

  10. IIS (HTTP Error 500.21 - Internal Server Error)解决

    今天在测试网站的时候,在浏览器中输入http://localhost/时,发生如下错误: HTTP Error 500.21 - Internal Server Error Handler " ...