Android微调器设置值
问题描述:
我想在运行时设置android微调器项目值。Android微调器设置值
这是我到目前为止有:
final ArrayAdapter<String> calsListAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, calendarNames);
eventCalendarList.setAdapter(calsListAdapter);
eventCalendarList.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
calendarChoosen = availableCals.get(arg2);
}
public void onNothingSelected(AdapterView<?> arg0) {
Logger.d("Cal Choosen", "fffffffffffffff");
}
});
private List<AvailableCalendar> availableCals = new ArrayList<AvailableCalendar>();
private AvailableCalendar calendarChoosen;
但没有设置值。如何做呢?
答
我打算假设您在此创建基于List<CharSequence>
或类似的微调器的适配器。您可以使用,这样做对选择查找,如:
String name = model.getName();
int index = list.indexOf(name);
if (index != -1) spinner.setSelection(index);
显然,如果你的模型没有包含任何“名称”的数据,那么就没有在微调选择,所以你可能需要添加一些逻辑来处理。如果模型确实具有“名称”,则在用作适配器的数据源的原始列表中找到其索引。只有在发现事件时,才能将微调器的选择设置为同一索引。
+0
非常感谢...它像一个魅力 – 2014-02-14 10:38:57
答
我编程设定的微调值是这样的:
public class MainActivity extends Activity {
private SharedPreferences prefs;
private String prefName = "spinner_value";
int id=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final List<String> list=new ArrayList<String>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
final Spinner sp=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adp= new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,list);
adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp.setAdapter(adp);
prefs = getSharedPreferences(prefName, MODE_PRIVATE);
id=prefs.getInt("last_val",0);
sp.setSelection(id);
sp.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0,
View arg1,int pos, long arg3) {
prefs = getSharedPreferences(prefName, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
//---save the values in the EditText view to preferences---
editor.putInt("last_val", pos);
editor.commit();
Toast.makeText(getBaseContext(),
sp.getSelectedItem().toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
张贴一些代码。您的解释不够清楚,无法理解问题。 – 2012-07-25 18:44:51
@DavidWasser代码如下:final ArrayAdapter calsListAdapter = new ArrayAdapter ( this,android.R.layout.simple_list_item_1,calendarNames); \t eventCalendarList.setAdapter(calsListAdapter); \t \t \t eventCalendarList \t \t \t \t \t .setOnItemSelectedListener(新OnItemSelectedListener(){ \t \t \t \t \t \t公共无效onItemSelected(适配器视图>为arg0, \t \t \t \t \t \t \t \t查看ARG1,ARG2 INT, long arg3){ \t \t \t \t \t \t \t calendarChoosen = availableCals.get(arg2); \t \t \t \t \t \t} \t \t \t \t \t \t公共无效onNothingSelected(适配器视图>为arg0){ \t \t \t \t \t \t \t Logger.d( “校准Choosen”, “fffffffffffffff”); \t \t \t \t \t \t} \t \t \t \t \t}); –
dominic
2012-07-26 06:05:18
private List availableCals = new ArrayList (); private AvailableCalendar calendarChoosen; –
dominic
2012-07-26 06:18:48