Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从其他活动检索spinner中的数据?_Java_Android - Fatal编程技术网

Java 如何从其他活动检索spinner中的数据?

Java 如何从其他活动检索spinner中的数据?,java,android,Java,Android,我正在寻找如何从我的微调器中的另一个活动中检索编辑文本,但我找不到如何从同一个活动中检索数据并将其存储在微调器中的教程。这个问题缺少大量上下文,因此我假设您使用微调器选择属性,将其持久化,并在另一个活动中检索它 例如,您可以简单地将一个项目的索引存储到共享首选项中,然后在另一个活动中检索它,或者将其传递到包中 在Android中,在活动或片段之间传递数据的方式有很多…有一些技巧可以满足您的需要: -如果您使用的是MVVM体系结构,请将其作为一个包含2个或更多片段的活动。在第一个片段中,将edit

我正在寻找如何从我的微调器中的另一个活动中检索编辑文本,但我找不到如何从同一个活动中检索数据并将其存储在微调器中的教程。

这个问题缺少大量上下文,因此我假设您使用微调器选择属性,将其持久化,并在另一个活动中检索它

例如,您可以简单地将一个项目的索引存储到共享首选项中,然后在另一个活动中检索它,或者将其传递到
包中


在Android中,在活动或片段之间传递数据的方式有很多…

有一些技巧可以满足您的需要: -如果您使用的是MVVM体系结构,请将其作为一个包含2个或更多片段的活动。在第一个片段中,将edittext的值保存到viewmodel,并在第二个片段中从viewmodel检索该值。
-如果您需要使用活动,请将您的值列表保存到SharedReference,并从其他活动中检索它们。

当用户在第一个活动中添加名称时,将其存储在捆绑包中,然后将其传递给第二个活动。然后,在创建第二个活动时,根据第一个活动传递的额外意图,从第二个活动中的数组动态填充微调器。Spinner是从.xml文件中的数组填充的,或者是动态填充的,我在上面描述过,这符合您在本例中的需要

Intent sendNameIntent = new Intent(this, SecondActivity.class);
sendNameIntent.putStringExtra("name",String.ValueOf(nameEdittext.getText()));
startActivity(sendNameIntent);
然后在你的第二个活动中,你会做这样的事情

String nameExtra = getIntent().StringExtra("name");
ArrayList<String> spinnerData = new ArrayList<>();
spinnerData.add(nameExtra);

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, 
android.R.layout.simple_spinner_item, spinnerData);

yourSpinner.setAdapter(arrayAdapter);
String namextra=getIntent().StringExtra(“名称”);
ArrayList spinnerData=新的ArrayList();
喷丝头数据。添加(nameExtra);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_spinner_项目,spinnerData);
设置适配器(arrayAdapter);

这将使用从第一个活动传递的名称填充微调器。这应该可以完成你想要的。如果缺少什么,请告诉我

谢谢你的回答,我不是在寻找如何选择一个属性,保留它并在另一个活动中恢复它,而是相反,我想恢复来自另一个活动的编辑文本,并将其存储在微调器中,每次我在第一个活动中添加一个名称,它将存储在第二个活动的微调器中。谢谢你的回答,如果你想通过添加示例代码来更新我的答案,你能用一个简单的代码来说明你所说的吗。祝你好运。然后你需要传递两个不同的字符串附加项,给它们唯一的名称,比如“personOne”、“personTwo”等,而不是“name”。然后在第二个活动中以与我相同的方式检索它们。或者,您可以保留SharedReferences,然后检索它们并填充微调器。它可以通过多种方式完成,这取决于你想完成什么。我不明白你说的“另一项活动”是什么意思。你的意思是你需要从不同的类引用存在于一个类中的微调器吗?我想恢复来自第一个活动的EditText,例如,每次我在第一个活动中添加名称时,它都存储在第二个活动的微调器中。