在微调器中进行用户选择,将其存储在sharedPreferences中,并在其他活动中使用它 [英] Taking user selection in a spinner, storing it in sharedPreferences, and using it in another activity
问题描述
我需要用户选择一家餐馆,并获得了很多不同选择的清单. 然后,我需要保存该选择,最好保存在诸如sharedPreferences之类的东西中.并在另一个活动中使用它来显示来自excel文档的一些数据.
I need the user to choose a restaurant, got a pretty large list with different selections. I then need to save that choice, preferably in something like sharedPreferences. And use it in another activity to display some data from an excel document.
当前我的代码如下:
在onCreate中:
in onCreate:
resturantSpinner = (Spinner) findViewById(R.id.resturantSpinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.resturant_arrays, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
resturantSpinner.setAdapter(adapter);
onItemSelected:
onItemSelected:
public void onItemSelected(View view) {
int userChoice = resturantSpinner.getSelectedItemPosition();
SharedPreferences sharedPref = getSharedPreferences("resturantFile",0);
SharedPreferences.Editor prefEditor = sharedPref.edit();
prefEditor.putInt("userChoiceSpinner", userChoice);
prefEditor.commit();
}
并在另一个活动中检索数据:
And retrieving the data, in another activity:
resturantTextView = (TextView) findViewById(R.id.resturantChoice);
Intent intent = getIntent();
SharedPreferences sharedPref = getSharedPreferences("resturantFile",MODE_PRIVATE);
int resturantChoice = sharedPref.getInt("userChoiceSpinner",-1);
resturantTextView.setText("" + resturantChoice);
我只是使用textView查看它保存的内容,目前它只显示-1
I just use the textView to see what it saves like, and currently it just shows -1
不妨添加此内容,userChoice值为0.
edit: might as well just add this, userChoice value is 0.
推荐答案
尝试一下:
像这样添加SharedPreferences sharedPref = getSharedPreferences("resturantFile",Activity.MODE_PRIVATE)
而不是
SharedPreferences sharedPref = getSharedPreferences("resturantFile",0)
.
Add like this SharedPreferences sharedPref = getSharedPreferences("resturantFile",Activity.MODE_PRIVATE)
instead of
SharedPreferences sharedPref = getSharedPreferences("resturantFile",0)
.
例如:保存方式
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", yourIntValue);
editor.commit();
在另一个活动中检索数据的方式:
The way to retrieve data in another activity:
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
int myIntValue = sp.getInt("your_int_key", -1);
如果这对您不起作用,请尝试以下一种方法: 将默认值-1更改为0
If that is not working for you then try this one: Change the default value -1 to 0,
int myIntValue = sp.getInt("your_int_key", 0);
有关更多信息,请使用此问题.
For more information use this question.
这篇关于在微调器中进行用户选择,将其存储在sharedPreferences中,并在其他活动中使用它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!