如何从另一个活动中检索微调器中的数据?



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

当用户在第一个活动中添加名称时,将其存储在捆绑包中并传递给第二个活动。然后,在创建第二个活动时,从第一个活动传递的 Intent extra 中从第二个活动中的数组动态填充微调器。微调器既可以从.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);

这将使用从第一个活动传递的名称填充微调器。这应该完成您正在寻找的内容。如果缺少什么,请告诉我。

这个问题缺乏很多上下文,所以我假设你正在使用微调器来选择一个属性,持久化它,并在另一个活动中检索它。

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

在 Android 中,有很多方法可以在活动或片段之间传递数据......

有一些技巧可以解决您需要的内容: - 如果您使用的是 MVVM 体系结构,请将其设置为一个具有 2 个或更多片段的活动。在第一个片段中,将编辑文本的值保存到视图模型,并从第二个片段中的视图模型中检索值。 - 如果需要使用活动,请将值列表保存到共享首选项,并从其他活动中检索它们。

最新更新