Android开发之一个未解决的bug

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

把代码和log都记录下来,以后研究

代码:

MainActivity.class

 1 package com.example.caradviser;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import android.app.Activity;
 7 import android.content.Intent;
 8 import android.net.Uri;
 9 import android.os.Bundle;
10 import android.util.Log;
11 import android.view.View;
12 import android.view.Window;
13 import android.widget.Spinner;
14 import android.widget.TextView;
15 import android.widget.Toast;
16
17 public class MainActivity extends Activity {
18
19     private static final String TAG = "com.example.caradviser";
20     TextView showBackText;
21
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         requestWindowFeature(Window.FEATURE_NO_TITLE);
26         setContentView(R.layout.activity_main);
27         showBackText=(TextView) findViewById(R.id.backMainActivity);
28     }
29
30     @Override
31     protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
32         super.onActivityResult(requestCode, resultCode, intent);
33
34         switch (requestCode) {
35         case 123123:
36             if (resultCode==RESULT_OK) {
37                 if (intent==null||"".equals(intent)) {
38                     Toast.makeText(MainActivity.this, "获取到的数据为空", Toast.LENGTH_SHORT).show();
39                 }else {
40                     String getData = intent.getStringExtra("data_return");
41                     showBackText.setText(intent.getStringExtra("data_return"));
42                 }
43             }
44             break;
45
46         default:
47             break;
48         }
49     }
50
51
52     public void toAnotherActivity3(View v){
53         String data ="Hello,这是传递的数据";
54         Intent intent = new Intent(MainActivity.this,ThreeActivity.class);
55         intent.putExtra("haha", data);
56         startActivityForResult(intent, 123123);
57     }
58 }

ThreeActivity.class

 1 package com.example.caradviser;
 2
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.os.Bundle;
 6 import android.text.TextUtils;
 7 import android.view.View;
 8 import android.view.View.OnClickListener;
 9 import android.view.Window;
10 import android.widget.Button;
11 import android.widget.TextView;
12 import android.widget.Toast;
13
14 public class ThreeActivity extends Activity {
15
16     private Button backToMainActivity;
17     private String data;
18     private TextView textView;
19
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         // TODO Auto-generated method stub
23         super.onCreate(savedInstanceState);
24         requestWindowFeature(Window.FEATURE_NO_TITLE);
25         setContentView(R.layout.three_layout);
26
27         Intent intent = getIntent();
28         data = intent.getStringExtra("haha");
29
30         textView = (TextView) findViewById(R.id.showText);
31
32         if (TextUtils.isEmpty(data)) {
33             Toast.makeText(ThreeActivity.this, "没有接收到其他activity的数据", Toast.LENGTH_SHORT).show();
34         }else {
35             textView.setText(data);
36         }
37
38
39         backToMainActivity = (Button) findViewById(R.id.backMainActivity);
40         backToMainActivity.setOnClickListener(new OnClickListener() {
41
42             @Override
43             public void onClick(View v) {
44                 // TODO Auto-generated method stub
45                 Intent intent = new Intent();
46                 String data3= "将要返回到MainActivity";
47                 intent.putExtra("data_return", data3);
48                 setResult(RESULT_OK,intent);
49                 finish();
50             }
51         });
52     }
53
54 }

Log

 1 10-12 16:22:02.304: E/AndroidRuntime(16265): FATAL EXCEPTION: main
 2 10-12 16:22:02.304: E/AndroidRuntime(16265): Process: com.example.caradviser, PID: 16265
 3 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
 4 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3375)
 5 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3418)
 6 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.app.ActivityThread.access$1300(ActivityThread.java:141)
 7 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1261)
 8 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.os.Handler.dispatchMessage(Handler.java:102)
 9 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.os.Looper.loop(Looper.java:136)
10 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.app.ActivityThread.main(ActivityThread.java:5072)
11 10-12 16:22:02.304: E/AndroidRuntime(16265):     at java.lang.reflect.Method.invokeNative(Native Method)
12 10-12 16:22:02.304: E/AndroidRuntime(16265):     at java.lang.reflect.Method.invoke(Method.java:515)
13 10-12 16:22:02.304: E/AndroidRuntime(16265):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
14 10-12 16:22:02.304: E/AndroidRuntime(16265):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
15 10-12 16:22:02.304: E/AndroidRuntime(16265):     at dalvik.system.NativeStart.main(Native Method)
16 10-12 16:22:02.304: E/AndroidRuntime(16265): Caused by: java.lang.NullPointerException
17 10-12 16:22:02.304: E/AndroidRuntime(16265):     at com.example.caradviser.MainActivity.onActivityResult(MainActivity.java:42)
18 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.app.Activity.dispatchActivityResult(Activity.java:5441)
19 10-12 16:22:02.304: E/AndroidRuntime(16265):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3371)
20 10-12 16:22:02.304: E/AndroidRuntime(16265):     ... 11 more

具体什么原因造成的,目前我还无法确定,等待能力提高以后,回头看看这个问题。

时间: 2024-08-10 13:18:07

Android开发之一个未解决的bug的相关文章

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

[Android开发那点破事]解决android.os.NetworkOnMainThreadException 昨天和女朋友换了手机,我的iPhone 4S 换了她得三星I9003.第一感觉就是好卡,果断刷机.以前是Android 2.3的系统.回来刷成了4.4. 好了,问题来了.在我用手机测试我们的APP的时候,抛出一个如题的异常:android.os.NetworkOnMainThreadException 第一次看到这异常,字面意思是说:在主线程中的网络异常.然后我就去了解了下这个异常,

ym——Android开发MVP模式(解决了View和Model的耦合)

什么是MVP呢?它又和我们常常听到的MVC有什么关系了以及区别呢? MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示.作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不

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

昨天学习Android XML解析的时候,想在自己的电脑上搭建一个最简单的Web服务器来存放一段XML文本,然后在Android程序中解析,查找了一些资料后,看到Apache服务器比较容易上手,使用范围也比较广泛,于是就决定使用它了. 1.下载Apache服务器安装包,地址:http://httpd.apache.org/download.cgi 我选择了2.4.12这个版本,在Apache官网找了半天以为会有.msi的安装包,但是却一直没找到,好吧没有就没有了(想偷懒却没有提供一键安装包,唉)

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

最近项目里面有个需求,一个页面放了一个ScrollView,整个页面可以向上滚动,然后ScrollView里面又嵌套了一个ListView,ListView里面的数据也是可以上下滑动的,理论上ListView被包在ScrollView里面,TouchEvent肯定是被ScrollView拦截了,那我们可以采取什么思路呢,我看网上很多做法说是将整个ListView的高度计算出来,感觉这样很不优雅,如果ListView数据超多,那么页面不是超长吗?其中一个思路就是当我们滑动ListView区域的时候

是否存在未解决的bug

目前在网上,都是使用了听说,这两个字,形容agg,并且从07年开始就没有更新,作为不推荐使用的一种理由. 如下是个人的一些观点: 1)目前在使用的过程中没有发现任何的bug,当然了这里有一篇文章描述内存的,这是一种极端的情况,用户需要自己处理.希望其他人能够提供一个Bug报告,至少可以进行修改

Android开发日志4——如何解决no CPU/ABI system image available for this target

真是个马大哈呀 问题如下: 1.在Tools里面,在extra里面选择安装Intel x86 Emulator Accelerator 2.下载相应API版本的X86 Atom System Image,我为了以后省事选上了所有能选的...如下图: 如果还不行的话: 3.在adt-bundle-windows-x86\sdk\extras\intel\Hardware_Accelerated_Execution_Manager目录下面去安装这个exe文件 然后在创建AVD的时候就可选了.

Leetcode 还未解决的bug

27. Remove Element val = 1 nums = [1,1,2,3] for i in nums: if i == val: nums.remove(i) a = nums result : val = 1 nums = [1,1,2,3] for i in nums[:]: if i == val: nums.remove(i) a = nums result: 不用remove的解法: class Solution(object): def removeElement(se

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

学了一个多月安卓,因为暑假的时候要给朋友说写个小游戏,而且也想检测下自己的能力,所以说从7号开始就着手写这个小游戏了,前前后后带上课到今天总算是写完了,但是写的这个小游戏还是有很多问题,但是还好,勉强能跑起来,一些瑕疵就不要在乎太多了,毕竟咱又不准备发布供别人下载. APK安装包下载链接(我给放在百度云盘了,可以直接点击下载):http://pan.baidu.com/s/1bnxpQrH 代码文件下载:(放在CSDN的下载那里了,不需要积分):http://download.csdn.net/

windows8.1下android开发环境搭建

一.基本jdk.eclipse环境 二.android sdk 1.下载安装:https://developer.android.com/sdk/installing/index.html?pkg=tools 2.打开SDK Manager.exe. a.若出现无法连接到google或者android各版本不能完全显示之类的问题.则 首先:进入tools选项卡-->options-->勾选Force https://...sources to be fetched using http://.