Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/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
Android 当选定项为&x27;暗示_Android_Spinner_Onitemclicklistener - Fatal编程技术网

Android 当选定项为&x27;暗示

Android 当选定项为&x27;暗示,android,spinner,onitemclicklistener,Android,Spinner,Onitemclicklistener,我有一个定制的微调器 @凌驾 public void setOnItemSelectedListener(最终OnItemSelectedListener侦听器){ final-OnItemSelectedListener-OnItemSelectedListener=new-OnItemSelectedListener(){ @凌驾 已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){ if(提示!=null | | floatingLabelText!=null){

我有一个定制的微调器

@凌驾 public void setOnItemSelectedListener(最终OnItemSelectedListener侦听器){

final-OnItemSelectedListener-OnItemSelectedListener=new-OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
if(提示!=null | | floatingLabelText!=null){
如果(!floatingLabelVisible&&position!=0){
showFloatingLabel();
}else if(floatingLabelVisible&&position==0){
hideFloatingLabel();
}
}
if(位置!=lastPosition&&error!=null){
设置错误(空);
}
最后位置=位置;
if(侦听器!=null){
位置=提示!=空?位置-1:位置;
listener.onItemSelected(父级、视图、位置、id);
}
}
@凌驾
未选择公共无效(AdapterView父级){
if(侦听器!=null){
listener.onNothingSelected(父级);
}
}
};
super.setOnItemSelectedListener(onItemSelectedListener);
}
当选定项为其提示时,不调用微调器“已选定”。 因此,当用户选择微调器提示时,未选择的微调器不被调用

那么如何在微调器中处理提示选择呢?

sp.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
    sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if (position == 0) {
                Toast.makeText(getActivity(), "its your hint ", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getActivity(), "do here what you want ", Toast.LENGTH_SHORT).show();
            }
        }


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

        }
    });
@凌驾 已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){ 如果(位置==0){ Toast.makeText(getActivity(),“这是你的提示”,Toast.LENGTH_SHORT.show(); }否则{ Toast.makeText(getActivity(),“在这里做你想做的”,Toast.LENGTH_SHORT.show(); } } @凌驾 未选择公共无效(AdapterView父级){ } });
试试这个

Spinner spinner_subcate = (Spinner) findViewById(R.id.subcat_spin);    
ArrayAdapter dataAdapter1=新的ArrayAdapter(MainActivity.this,R.layout.spinner\u项){

@覆盖
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=super.getView(位置、转换视图、父级);
if(position==getCount()){
((TextView)v.findViewById(android.R.id.text1)).setText(“”);
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount());/“要显示的提示”
}
返回v;
}
@凌驾
public int getCount(){
return super.getCount()-1;//不显示最后一项。它用作提示。
}
};
dataAdapter1.setDropDownViewResource(R.layout.spinner\u下拉菜单项);
数据适配器1.添加(“列表项1”);
数据适配器1.添加(“列表项2”);
数据适配器1.添加(“列表项3”);
数据适配器1.添加(“提示”);
//微调器单击侦听器
微调器_subcate.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String sub_cat=parent.getItemAtPosition(位置).toString();
Log.d(“子类::”,子类);
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
//将数据适配器连接到微调器
微调器_subcate.setAdapter(数据适配器1);
微调器_subcate.setSelection(dataAdapter1.getCount())//将提示设置为默认选择,使其在启动时显示。

您可以手动检查位置,也可以添加代码以提高效率explanation@Chetna不幸的是,在选择提示时,onItemSelected未调用,并且我无法获取位置。请添加您的codecan您设置的item Selected Listener或Nother sp是您的微调器对象
Spinner spinner_subcate = (Spinner) findViewById(R.id.subcat_spin);    
                    @Override
                    public View getView(int position, View convertView, ViewGroup parent) {

                        View v = super.getView(position, convertView, parent);
                        if (position == getCount()) {
                            ((TextView)v.findViewById(android.R.id.text1)).setText("");
                            ((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
                        }

                        return v;
                    }

                    @Override
                    public int getCount() {
                        return super.getCount()-1; // you dont display last item. It is used as hint.
                    }

                };

                dataAdapter1.setDropDownViewResource(R.layout.spinner_dropdown_item);

                dataAdapter1.add("list item1");
                dataAdapter1.add("list item2");
                dataAdapter1.add("list item3");
                dataAdapter1.add("hint");

                // Spinner click listener
                spinner_subcate.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                        String sub_cat = parent.getItemAtPosition(position).toString();
                        Log.d("sub cat::",sub_cat);
                    }

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

                    }
                });

                // attaching data adapter to spinner
                spinner_subcate.setAdapter(dataAdapter1);
                spinner_subcate.setSelection(dataAdapter1.getCount()); //set the hint the default selection so it appears on launch.