2012-03-21 51 views
0

1.我试图从一个活动向另一个活动传递一个字符串数组,但应用程序给出了“应用程序意外停止”。我是android新手,不知道该怎么做。将数据从活动A传递给B:应用程序意外停止

2.能否请你告诉我如何解决这些运行时错误以及如何使用logcat我没有
的想法?

代码活动A:

private OnClickListener mylistener=new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     intent=new Intent(MsgSmsActivity.this,MsgSmsActivity2.class); 
     MsgSmsActivity.this.startActivity(intent); 
     intent.putExtra("bodyText", body); 
     intent.putExtra("numbersText", number); 

    } 
}; 

代码活性B:

String[] arr; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // TODO Auto-generated method stub 
    arr=new String[3]; 
    arr=getIntent().getExtras().getStringArray("bodyText"); 
    TextView tx=new TextView(this); 
    tx.setText(arr[0]); 
    setContentView(tx); 
} 

“身体” 和 “数量” 是字符串数组。

这里是我的logcat:

03-21 13:07:03.477: ERROR/Zygote(32): setreuid() failed. errno: 2<br> 
03-21 13:07:14.976: ERROR/Zygote(32): setreuid() failed. errno: 17<br> 
03-21 13:07:17.116: ERROR/BatteryService(76): usbOnlinePath not found<br> 
03-21 13:07:17.116: ERROR/BatteryService(76): batteryVoltagePath not found<br> 
03-21 13:07:17.116: ERROR/BatteryService(76): batteryTemperaturePath not found<br> 
03-21 13:07:17.156: ERROR/SurfaceFlinger(76): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake<br> 
03-21 13:07:17.386: ERROR/SensorService(76): couldn't open device for module sensors (Invalid argument)<br> 
03-21 13:07:43.016: ERROR/System(76): Failure starting core service<br> 
03-21 13:07:43.016: ERROR/System(76): java.lang.SecurityException<br> 
03-21 13:07:43.016: ERROR/System(76):  at android.os.BinderProxy.transact(Native Method)<br> 
03-21 13:07:43.016: ERROR/System(76):  at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)<br> 
03-21 13:07:43.016: ERROR/System(76):  at android.os.ServiceManager.addService(ServiceManager.java:72)<br> 
03-21 13:07:43.016: ERROR/System(76):  at com.android.server.ServerThread.run(SystemServer.java:206)<br> 
03-21 13:07:43.056: ERROR/EventHub(76): could not get driver version for /dev/input/mouse0, Not a typewriter<br> 
03-21 13:07:43.056: ERROR/EventHub(76): could not get driver version for /dev/input/mice, Not a typewriter<br> 
03-21 13:07:43.756: ERROR/SoundPool(76): error loading /system/media/audio/ui/Effect_Tick.ogg<br> 
03-21 13:07:43.766: ERROR/SoundPool(76): error loading /system/media/audio/ui/KeypressStandard.ogg<br> 
03-21 13:07:43.766: ERROR/SoundPool(76): error loading /system/media/audio/ui/KeypressSpacebar.ogg<br> 
03-21 13:07:43.766: ERROR/SoundPool(76): error loading /system/media/audio/ui/KeypressDelete.ogg<br> 
03-21 13:07:43.776: ERROR/SoundPool(76): error loading /system/media/audio/ui/KeypressReturn.ogg<br> 
03-21 13:07:43.806: ERROR/UsbObserver(76): java.lang.NullPointerException<br> 
03-21 13:07:43.806: ERROR/UsbObserver(76):  at com.android.server.UsbObserver.init(UsbObserver.java:131)<br> 
03-21 13:07:43.806: ERROR/UsbObserver(76):  at com.android.server.UsbObserver.<init>(UsbObserver.java:65)<br> 
03-21 13:07:43.806: ERROR/UsbObserver(76):  at com.android.server.ServerThread.run(SystemServer.java:402)<br> 
03-21 13:07:48.077: ERROR/ThrottleService(76): Could not open GPS configuration file /etc/gps.conf<br> 
03-21 13:07:48.128: ERROR/ThrottleService(76): Error reading data file<br> 
03-21 13:07:48.606: ERROR/logwrapper(172): executing /system/bin/tc failed: No such file or directory<br> 
03-21 13:07:48.687: ERROR/logwrapper(174): executing /system/bin/tc failed: No such file or directory<br> 
03-21 13:07:48.756: ERROR/logwrapper(177): executing /system/bin/tc failed: No such file or directory<br> 
03-21 13:07:54.707: ERROR/logwrapper(213): executing /system/bin/tc failed: No such file or directory<br> 
03-21 13:07:54.737: ERROR/logwrapper(214): executing /system/bin/tc failed: No such file or directory<br> 
03-21 13:07:54.767: ERROR/logwrapper(215): executing /system/bin/tc failed: No such file or directory<br> 
03-21 18:08:58.619: ERROR/MetadataRetrieverClient(33): failed to extract an album art<br> 
03-21 18:09:17.207: ERROR/ThrottleService(76): Error reading data file<br> 
03-21 18:25:23.387: ERROR/InputDispatcher(76): channel '40517da8 com.example.ssms/com.example.ssms.MsgSmsActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8<br> 
03-21 18:25:23.387: ERROR/InputDispatcher(76): channel '40517da8 com.example.ssms/com.example.ssms.MsgSmsActivity (server)' ~ Channel is unrecoverably broken and will be disposed!<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439): FATAL EXCEPTION: main<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ssms/com.example.ssms.MsgSmsActivity2}: java.lang.NullPointerException<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.os.Handler.dispatchMessage(Handler.java:99)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.os.Looper.loop(Looper.java:123)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.app.ActivityThread.main(ActivityThread.java:3647)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at java.lang.reflect.Method.invokeNative(Native Method)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at java.lang.reflect.Method.invoke(Method.java:507)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at dalvik.system.NativeStart.main(Native Method)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439): Caused by: java.lang.NullPointerException<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at com.example.ssms.MsgSmsActivity2.onCreate(MsgSmsActivity2.java:23)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)<br> 
03-21 18:25:31.837: ERROR/AndroidRuntime(439):  ... 11 more 
+0

检查这在您的manifest.xml有与否MsgSmsActivity2 – 2012-03-21 14:05:03

回答

0

arr是一个字符串数组。 tx.setText(arr);会给异常,因为的setText被定义为接受的CharSequence

如果你想设置的TextView的一些文字,然后首先从使用ARR [指数]阵列的字符串,然后设置字符串到textview。

+0

sry它是一个错误的问题它的ARR [0]但结果是一样的 – Mj1992 2012-03-21 13:57:03

+0

@ MJ1992使用SYSOUT检查ARR是否有一些价值吗? – 2012-03-21 13:59:48

+0

是啊问题是在arr中它不包含任何值。thnx。 – Mj1992 2012-03-21 14:03:58

0
private OnClickListener mylistener=new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     intent=new Intent(MsgSmsActivity.this,MsgSmsActivity2.class); 
     intent.putExtra("bodyText", body); 
     intent.putExtra("numbersText", number); 
     MsgSmsActivity.this.startActivity(intent); 
    } 
}; 

尝试用startActivity切换putExtra行。

+0

日Thnx @blackbelt的答复。我做了你所说的,但结果是一样的:( – Mj1992 2012-03-21 13:54:21

0

而是在活动A使用putExtra()的,请尝试bodynumber到ArrayList中的,并使用putStringArrayListExtra(),然后在活动B使用getStringArrayListExtra()代替getExtra()

0

发送字符串数据

正如我们已经知道,我们可以从一个使用意图转移到其他活动。

Intent i = new Intent(MainActivity.this,GoActivity.class); 

String data = “bla bla”;// Data String to send 

i.putExtra("DATA",data); 

接收数据

我们可以接收该字符串数据之上,如下所示。

Intent i = getIntent(); 

String data = i.getStringExtra("DATA");// you well get the String data i.e., BLA BLA 

发送和接收数据时,红色数据应该相同。

发送对象

这是从一个发送的对象给其他类的代码。发送Object的一件重要的事情是该类应该实现Serializable类。

下面的红色文字应该是相同的。

Intent i = new Intent(MainActivity.this,startActivity.class); 

ObjectClassName object = new ObjectClassName(); 

i.putExtra("THIS", Object); 

接收对象

// startActivity.java

Intent i = getIntent(); 

ObjectClassName obj = (ObjectClassName) getIntent().getSerializableExtra("THIS");// TypeCasting needed