这是屏幕截图...我对旋转器值的变化仅在2个刷新后反映我有一个带有10个屏幕的应用后,我的主要活动中有1个旋转器,而片段中的文本框则有1个旋转器。想要在我的文本框中显示最近选择的旋转器值。
我编写了一个代码,以在我的文本框中显示所选的旋转器值,并且在我的所有屏幕中都变得稳定。但是我不知道如何根据最近选择的旋转器值动态更改文本框值。(下降之前,请建议我一些解决方案)
这是获得旋转器值
的代码String pos = (String) spinner.getSelectedItem();
SharedPreferences sharedPref = getSharedPreferences("Mode", Activity.MODE_PRIVATE);
SharedPreferences.Editor prefEditor = sharedPref.edit();
prefEditor.putString("userChoicemode", pos);
prefEditor.commit();
这是检索它的代码
TextView modeselect = (TextView) view.findViewById(R.id.pass);
SharedPreferences sharedPref = this.getActivity().getSharedPreferences("Mode", Activity.MODE_PRIVATE);
String get = sharedPref.getString("userChoicemode",selected);
modeselect.setText("" + get);
呼叫下面的方法
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String text=spinner.getSelectedItem().toString();
txtview.setText(text);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
当列表设置为旋转器时,每当用户从旋转器中选择任何项目时,您都可以从按钮单击" getSelectedItem()"或仅在用户从用户从用户从中选择文本时从按钮中获取旋转器值时,请调用以上方法调用。旋转器,您必须将其称为"覆盖方法"
尝试此
yourSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedText = parent.getItemAtPosition(position).toString()
// Set your TextView here
myTextView.setText(selectedText);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
,如果您的文本视图在不同的片段中,请按照活动和片段之间的链接通信
您可以调用Spinner的setOnItemSelectedListener
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
modeselect.setText(spinner.getSelectedItem().toString());
//or
//modeselect.setText(adapterView.getItemAtPosition(i));
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
textView.setText(spinner.getSelectedItem().toString());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});