onItemSelected() 方法应该返回一个 View 作为它的对象之一,在这种情况下,它是一个 textView,通过在 Logcat 中获取对象的描述和哈希来验证,所以 view 实际上是一个 TextView。此处显示的方法返回的视图
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
如何获取存储在该视图中的文本字符串?例如,如果你这样做,
view.getText();
它应该返回存储在 textView 中的字符串,但不起作用
但是我尝试了许多不同的方法,例如将视图转换为 TextView 以从视图中获取存储的字符串,但这些方法都不起作用。我失败的尝试之一就是这样
((TextView) view).getText()
如何从 onItemSelected 回调方法返回的视图中获取字符串?
ArrayList 与字符串一起加载并放入此处显示的适配器中,
public class SpinnerAdapter extends ArrayAdapter<String>{
ArrayList<String> objects;
Context context;
int textViewResourceId;
public SpinnerAdapter(Context context, int textViewResourceId, ArrayList<String> objects) {
super(context, textViewResourceId, objects);
this.context = context;
this.textViewResourceId = textViewResourceId;
this.objects = objects;
}
spinnerOne.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(StandardSelectionSettingsSmallTank.this, "id returned "+ Long.toString(id) , Toast.LENGTH_SHORT).show();
Toast.makeText(StandardSelectionSettingsSmallTank.this, "view returned "+ ((TextView) view).getText() , Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
编辑:我刚刚尝试了以下代码,它正在做我需要做的事情。它获取存储在微调器当前位置的字符串。我之前使用 ArrayList 加载的字符串。这是有效的,所以我想我将使用它而不是使用 onItemSelected 方法返回的 View 对象。
字符串选择 = spinnerOne.getSelectedItem().toString();
我将使用它,除非有人知道如何通过使用视图对象以另一种方式做到这一点