Java 如何从onItemSelected()方法返回的视图对象中获取字符串

Java 如何从onItemSelected()方法返回的视图对象中获取字符串,java,android,spinner,android-arrayadapter,android-adapter,Java,Android,Spinner,Android Arrayadapter,Android Adapter,onItemSelected()方法应该返回一个视图作为其对象之一,在本例中,它是一个textView,通过在Logcat中获取对象的描述和散列来验证,因此View实际上是一个textView。此处显示的方法返回的视图 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 它应该返回存储在textView中的字符串,但不起作用 然而,我尝试了许多不同的方法,比如将

onItemSelected()方法应该返回一个视图作为其对象之一,在本例中,它是一个textView,通过在Logcat中获取对象的描述和散列来验证,因此View实际上是一个textView。此处显示的方法返回的视图

 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
它应该返回存储在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

                }

            });

        }
公共类SpinnerAdapter扩展了ArrayAdapter{
阵列列表对象;
语境;
int textViewResourceId;
公共SpinnerAdapter(上下文上下文、int-textViewResourceId、ArrayList对象){
超级(上下文、textViewResourceId、对象);
this.context=上下文;
this.textViewResourceId=textViewResourceId;
this.objects=对象;
}
spinnerOne.setOnItemSelectedListener(新的OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//TODO自动生成的方法存根
Toast.makeText(StandardSelectionSettingsSmallTank.this,“id returned”+Long.toString(id),Toast.LENGTH\u SHORT.show();
Toast.makeText(StandardSelectionSettingsSmallTank.this,“视图返回”+((TextView)视图).getText(),Toast.LENGTH\u SHORT.show();
}
@凌驾
未选择公共无效(AdapterView父级){
//TODO自动生成的方法存根
}
});
}
编辑:我刚刚试过下面的代码,它正在做我需要做的事情。它获取存储在微调器当前位置的字符串。我先前用ArrayList加载的字符串。这是可行的,所以我想我将使用它,而不是使用onItemSelected方法返回的View对象

字符串选择=spinnerOne.getSelectedItem().toString()

我将使用这个,除非有人知道如何通过使用视图对象以另一种方式执行此操作

String selection=spinnerOne.getSelectedItem().toString();
parent.getItemAtPosition(position).toString() in place of  `((TextView) view).getText()`

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

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

您正在尝试从微调器中选择字符串吗?是的,并且.getSelectedItem()在这方面工作得很好,我决定使用它,它比使用view要好。很抱歉出现任何混淆,有时我正在寻找的答案不是预期的答案。如果我仍然对如何从视图对象获取字符串内容感兴趣,但是现在我很满意,我不需要这样做。我宁愿了解如何做到这两种方式都好。一开始我很困惑,所以删除了答案;)。很高兴你解决了这个问题。Shobhit也有一个很好的答案,但是这个答案从onItemSelected回调方法提供的对象获取字符串,因此它更接近原始问题。这两个答案都很好,我将来会使用这些方法。
this.objects.get(position).getYourString();