我有一个包含String,Method等的Activity。我想用另一个Activity读取它。这是我的代码。
Activitymain.java
public class Activitymain extends Activity{
public String input;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_main);
input = "This is the input";
}
另一项活动。
SecondAct.java
public class SecondAct extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secon_act);
Activitymain am = (Activitymain) this;
Toast.maketext(this, ""+am.input,Toast.LENGTH_LONG).show();
}
但是当我去另一个Activity时它会崩溃。 这是日志:
11-14 14:42:45.000: E/AndroidRuntime(16457): FATAL EXCEPTION: main
11-14 14:42:45.000: E/AndroidRuntime(16457): java.lang.NullPointerException
11-14 14:42:45.000: E/AndroidRuntime(16457): at com.example.tabs.SecondAct.Start_Call(SecondAct.java:384)
11-14 14:42:45.000: E/AndroidRuntime(16457): at com.example.tabs.SecondAct$1.onClick(SecondAct.java:420)
11-14 14:42:45.000: E/AndroidRuntime(16457): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:946)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.widget.AbsListView.performItemClick(AbsListView.java:1114)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2933)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.widget.AbsListView$1.run(AbsListView.java:3691)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.os.Handler.handleCallback(Handler.java:615)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.os.Handler.dispatchMessage(Handler.java:92)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.os.Looper.loop(Looper.java:153)
11-14 14:42:45.000: E/AndroidRuntime(16457): at android.app.ActivityThread.main(ActivityThread.java:5086)
11-14 14:42:45.000: E/AndroidRuntime(16457): at java.lang.reflect.Method.invokeNative(Native Method)
11-14 14:42:45.000: E/AndroidRuntime(16457): at java.lang.reflect.Method.invoke(Method.java:511)
11-14 14:42:45.000: E/AndroidRuntime(16457): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
11-14 14:42:45.000: E/AndroidRuntime(16457): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
11-14 14:42:45.000: E/AndroidRuntime(16457): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
在SecondAct.java中尝试:
public class SecondAct extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secon_act);
Toast.maketext(this, ""+Activitymain.input,Toast.LENGTH_LONG).show();
}
不要忘记在 Activitymain 中发起input
字符串。
答案 1 :(得分:0)
有很多方法可以做到这一点。
首先:您可以在启动时传递数据包 来自Activitymain的SecondAct。
第二:在某处创建一个全局静态变量。设置它 Activitymain并在SecondAct中获取它。
第三步:为整个应用程序创建一个单例类进行存储 Activitymain中的数据并从SecondAct获取该数据。
如果您对[{3}}
感兴趣,请查看此帖子