我将整数变量从FirstPage传递到FifthPage,我可以在我的吐司中看到0而不是存储在' q1'中的实际值。如何将整数变量从一个活动传递给其他活动? 任何人都可以帮助我....谢谢
FirstPage.java
int pos =poltype.getSelectedItemPosition();
int q1=pos;
Intent myIntent = new Intent(context1, FifthPage.class);
myIntent.putExtra("Q1", (int)q1);
Intent myintent2 = new Intent(context1, SecondPage.class);
startActivity(myintent2);
FifthPage.java
Intent mIntent = getIntent();
int Q1 = mIntent.getIntExtra("Q1", 0);
Toast.makeText(FifthPage.this,
String.valueOf(Q1), Toast.LENGTH_LONG)
.show();
Log cat:
05-19 16:06:44.557: E/AndroidRuntime(2922): FATAL EXCEPTION: main
05-19 16:06:44.557: E/AndroidRuntime(2922): Process: com.example.techback, PID: 2922
05-19 16:06:44.557: E/AndroidRuntime(2922): android.content.res.Resources$NotFoundException: String resource ID #0x0
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.content.res.Resources.getText(Resources.java:274)
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.widget.Toast.makeText(Toast.java:277)
05-19 16:06:44.557: E/AndroidRuntime(2922): at com.example.techback.FifthPage$1.onClick(FifthPage.java:50)
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.view.View.performClick(View.java:4756)
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.view.View$PerformClick.run(View.java:19749)
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.os.Handler.handleCallback(Handler.java:739)
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.os.Handler.dispatchMessage(Handler.java:95)
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.os.Looper.loop(Looper.java:135)
05-19 16:06:44.557: E/AndroidRuntime(2922): at android.app.ActivityThread.main(ActivityThread.java:5221)
05-19 16:06:44.557: E/AndroidRuntime(2922): at java.lang.reflect.Method.invoke(Native Method)
05-19 16:06:44.557: E/AndroidRuntime(2922): at java.lang.reflect.Method.invoke(Method.java:372)
05-19 16:06:44.557: E/AndroidRuntime(2922): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
05-19 16:06:44.557: E/AndroidRuntime(2922): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
答案 0 :(得分:1)
使用它 因为你必须从不同的意图发送值而不是从单一的意图发送
int pos =poltype.getSelectedItemPosition();
int q1=pos;
Intent myIntent = new Intent(context1, FifthPage.class);
myIntent.putExtra("Q1", q1);
startActivity(myintent);
Intent myintent2 = new Intent(context1, SecondPage.class);
startActivity(myintent2);
答案 1 :(得分:1)
在FirstPage中,使用:
int pos =poltype.getSelectedItemPosition();
int q1=pos;
Intent myIntent = new Intent(context1, FifthPage.class);
myIntent.putExtra("Q1", (int)q1);
startActivity(myintent);
在FifthPage活动中,使用此
Intent mIntent = getIntent();
Bundle bundle = mIntent.getExtras();
if (bundle != null) {
// getting Q1
int q1 = bundle.getInt("Q1");
}
编辑:如果您不想启动Fifthpage,可以将Q1值保存到SharedPreference并从那里访问它。
SharedPreference用法:
在FirstPage中:
SharedPreference sp = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor spe = sp.edit();
spe.putInt("Q1", (int)q1);
spe.commit();
在FifthPage中:
SharedPreference sp = getPreferences(Context.MODE_PRIVATE);
int q1 = sp.getInt("Q1", 0);
答案 2 :(得分:0)
你只需要一个意图,而不是两个,你必须以你的整数(myIntent而不是myIntent2)的意图开始新的活动。
Intent intent = new Intent(CurrentClass.this, NewClass.class);
intent.putExtra("name", integerValue)
startActivity(intent);
答案 3 :(得分:0)
以意图开始活动,其中您需要额外添加,然后在想要获得价值时尝试使用此活动:
int Q1 = Integer.parseInt(getIntent().getExtras().get("Q1").ToString());