Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在具有图像和文本的自定义材质微调器中仅获取文本_Java_Android_Spinner - Fatal编程技术网

Java 如何在具有图像和文本的自定义材质微调器中仅获取文本

Java 如何在具有图像和文本的自定义材质微调器中仅获取文本,java,android,spinner,Java,Android,Spinner,我有一个显示图像和文本的材质微调器,但我只想检索选中的文本。但它正在返回空值 我的适配器类 public class SpinnerCustomAdapter extends BaseAdapter { Context context; int cat_pics[]; ArrayList<String> categoryNames; LayoutInflater inflter; public SpinnerCustomAdapter(

我有一个显示图像和文本的材质微调器,但我只想检索选中的文本。但它正在返回空值

我的适配器类

   public class SpinnerCustomAdapter extends BaseAdapter {
    Context context;
    int cat_pics[];
    ArrayList<String> categoryNames;
    LayoutInflater inflter;

    public SpinnerCustomAdapter(Context applicationContext, int[] cat_pics, ArrayList<String> categoryNames) {
        this.context = applicationContext;
        this.cat_pics = cat_pics;
        this.categoryNames = categoryNames;
        inflter = (LayoutInflater.from(applicationContext));
    }

    @Override
    public int getCount() {
        return cat_pics.length;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = inflter.inflate(R.layout.custom_spinner_items, null);
        ImageView icon = (ImageView) view.findViewById(R.id.imageView);
        TextView names = (TextView) view.findViewById(R.id.textView);
        icon.setImageResource(cat_pics[i]);
        names.setText(categoryNames.get(i));
        return view;
    }
}
被选中

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

        Toast.makeText(parent.getContext(), "Selected Item : " + customAdapter.getItem(position) ,
                Toast.LENGTH_LONG).show();
    }
@覆盖
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Toast.makeText(parent.getContext(),“所选项目:”+customAdapter.getItem(位置),
Toast.LENGTH_LONG).show();
}
尝试以下操作:

spinner.getSelectedItem().toString()
(或) 在MSelectedListener中:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Log.d("SeletedItem",adapterView.getSelectedItem().toString());
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
Log.d(“SeletedItem”,adapterView.getSelectedItem().toString());
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});

SpinnerCustomAdapter
中,您的
getItem()
方法返回
null

@Override
public Object getItem(int i) {
    return null;
}
更新
getItem()
方法如下:

@Override
public Object getItem(int i) {
    return categoryNames.get(i);
}
#.您还可以使用
父项.getItemAtPosition(position)
来获取选中的

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

    Toast.makeText(getApplicationContext(), "Selected Item : " 
                   + parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
}
@覆盖
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Toast.makeText(getApplicationContext(),“所选项目:”
+parent.getItemAtPosition(position.toString(),Toast.LENGTH_LONG.show();
}

像这样试试,可能会对你有所帮助

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            String text = spinner.getItemAtPosition(i)
            Toast.makeText(getApplicationContext(), "Selected : " text, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
String text=spinner.getItemAtPosition(i)
Toast.makeText(getApplicationContext(),“Selected:“text,Toast.LENGTH_SHORT).show();
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});

我尝试了这两种方法,但它们都仍然返回“null”,这很有效。它没有更改getItem()处的返回值。谢谢
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            String text = spinner.getItemAtPosition(i)
            Toast.makeText(getApplicationContext(), "Selected : " text, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });