我在TableRow中使用了一个微调器并且它工作得很好,除了我不喜欢微调器图标根据所选项目伸展。我试图删除xml中的Spinner部分并在我的代码上创建它。
在OnCreate()中创建微调器:
selectArea = /*(Spinner)this.findViewById(R.id.spinner);*/new Spinner(this);
String[] ss = getResources().getStringArray(R.array.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
selectArea.setOnItemSelectedListener(new MyOnItemSelectedListener());
selectArea.setSelection(prefInt);
处理选择事件:
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
Log.d(TAG, "onItemSelected() " + id);
}
public void onNothingSelected(AdapterView<?> parent) {
// Do nothing.
}
}
它几乎完美无缺。 TableRow显示没有微调器图标,在触摸TableRow时,它会弹出要选择的项目。我唯一的问题是,在选择一个tiem时,我从来没有得到我的onItemSelected()调用..
可能有什么不对?
答案 0 :(得分:1)
请更改此行
spinner.setAdapter(adapter);
进入行
selectedArea.setAdapter(adapter);
答案 1 :(得分:0)
看我在这里创建了微调器
Spinner selectArea= new Spinner(Activity.this);
String[] ss = getResources().getStringArray(R.array.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
selectArea.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
selectArea.setAdapter(adapter);
linearLayout1.addView(selectArea);//to add your spinner
selectArea.setOnItemSelectedListener(new MyOnItemSelectedListener());