如何从onItemSelected()方法返回的视图对象中获取String

时间:2013-07-24 04:11:09

标签: java android spinner android-arrayadapter android-adapter

onItemSelected()方法应该返回一个View作为其中一个对象,在这种情况下,它是一个通过在Logcat中获取对象的描述和哈希来验证的textView,因此view真的是一个TextView。此处显示的方法返回的视图

 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

如何获取存储在该视图中的文本字符串?例如,如果你这样做,

 view.getText();

它应该返回存储在textView中的String,但不起作用

但是我已经尝试了许多不同的东西,比如将视图转换为TextView以从视图中获取存储的String,并且这些都不起作用。我失败的尝试之一就像这样

  ((TextView) view).getText()

如何从onItemSelected回调方法返回的视图中获取String?

ArrayList加载了Strings并被放入这里显示的适配器

  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对象。

String selection = spinnerOne.getSelectedItem()。toString();

除非有人知道如何通过使用视图对象

以其他方式进行操作,否则我将使用此功能

3 个答案:

答案 0 :(得分:3)

检查这一个。

parent.getItemAtPosition(position).toString() in place of  `((TextView) view).getText()`

答案 1 :(得分:1)

String selection=spinnerOne.getSelectedItem().toString();

答案 2 :(得分:0)

您可以通过int位置从适配器中设置的对象中获取字符串。

this.objects.get(position).getYourString();