如何通过 Android Intents 传递数组的值?
How do I pass the values of an Array through Android Intents?
我进行了大量搜索,但找不到关于传递数组值的一致答案,所以我试了一下,但失败了
这是我要传输的数组
public String[] usersAnswers1 = { "Test Array", //Array 0 };
这是我试图从
传递意图的Activity
Intent intent = new Intent(Test1.this, Results1.class);
intent.putExtra("usersAnswers1", usersAnswers1);
startActivity(intent);
然后我尝试在第 2 个 Activity 中捕获它,同时尝试将其移动到第 3 个 activity。这是因为我需要 Activity 3 中的数组值,而不是 Activity 2
Bundle extras = getIntent().getExtras();
Intent intent = new Intent(Results1.this, UsersAnswers1.class);
intent.putExtra("usersAnswers1", extras);
startActivity(intent);
然后我在第三个抓到了activity
Bundle extras = getIntent().getExtras();
String[] usersAnswers1i = extras.getStringArray("usersAnswers1");
当我的应用程序读取到下一行时,我在这一行收到 NullPointerException
resultView1.setText("1. " + usersAnswers1i[0]);
执行此操作的正确方法是什么?
问题在这里:
intent.putExtra("usersAnswers1", extras);
extras
是 Bundle
而非 String[]
的实例。您对 String[]
和 Bundle
使用相同的密钥 usersAnswers1
如何在第二个 activity 中只检索数组并使用
将其放入新的 intent extras
String[] userAnswers = getExtras().getStringArray("usersAnswers1");
Intent intent = new Intent(Results1.this, UsersAnswers1.class);
intent.putExtra("usersAnswers1", usersAnswers);
那么你就可以在第三个activity.
中找回它
旁白:为键 "userAnswers1" 创建常量。
将第二个 activity 更改为
Bundle extras = getIntent().getExtras();
Intent intent = new Intent(Results1.this, UsersAnswers1.class);
intent.putExtra("usersAnswers1", extras.getStringArray("usersAnswers1")
);
startActivity(intent);
然后在第三个抓到它activity
Bundle extras = getIntent().getExtras(); String[] usersAnswers1i = extras.getStringArray("usersAnswers1");
在activity2中,你只需要传递一份即可。
intent.putExtras(附加)
会起作用。
你可以通过源代码看到它是如何工作的。
我进行了大量搜索,但找不到关于传递数组值的一致答案,所以我试了一下,但失败了
这是我要传输的数组
public String[] usersAnswers1 = { "Test Array", //Array 0 };
这是我试图从
传递意图的Activity Intent intent = new Intent(Test1.this, Results1.class);
intent.putExtra("usersAnswers1", usersAnswers1);
startActivity(intent);
然后我尝试在第 2 个 Activity 中捕获它,同时尝试将其移动到第 3 个 activity。这是因为我需要 Activity 3 中的数组值,而不是 Activity 2
Bundle extras = getIntent().getExtras();
Intent intent = new Intent(Results1.this, UsersAnswers1.class);
intent.putExtra("usersAnswers1", extras);
startActivity(intent);
然后我在第三个抓到了activity
Bundle extras = getIntent().getExtras();
String[] usersAnswers1i = extras.getStringArray("usersAnswers1");
当我的应用程序读取到下一行时,我在这一行收到 NullPointerException
resultView1.setText("1. " + usersAnswers1i[0]);
执行此操作的正确方法是什么?
问题在这里:
intent.putExtra("usersAnswers1", extras);
extras
是 Bundle
而非 String[]
的实例。您对 String[]
和 Bundle
usersAnswers1
如何在第二个 activity 中只检索数组并使用
将其放入新的 intent extrasString[] userAnswers = getExtras().getStringArray("usersAnswers1");
Intent intent = new Intent(Results1.this, UsersAnswers1.class);
intent.putExtra("usersAnswers1", usersAnswers);
那么你就可以在第三个activity.
中找回它旁白:为键 "userAnswers1" 创建常量。
将第二个 activity 更改为
Bundle extras = getIntent().getExtras();
Intent intent = new Intent(Results1.this, UsersAnswers1.class);
intent.putExtra("usersAnswers1", extras.getStringArray("usersAnswers1")
);
startActivity(intent);
然后在第三个抓到它activity
Bundle extras = getIntent().getExtras(); String[] usersAnswers1i = extras.getStringArray("usersAnswers1");
在activity2中,你只需要传递一份即可。
intent.putExtras(附加)
会起作用。
你可以通过源代码看到它是如何工作的。