【问题标题】:how to set spinner list value first position showing empty如何设置微调器列表值的第一个位置显示为空
【发布时间】:2019-05-14 13:28:09
【问题描述】:

如何设置微调器列表第一个位置值显示为空,我附加了适配器和活动:请解决我的问题。

SpinnerAdapterIdtypeMaster

public class SpinnerAdapterIdtypeMaster extends ArrayAdapter {
    private Context mContext;
    private List<CMSSubMasterDB> spinnerList = new ArrayList<>();

    private MasterType type;

    public SpinnerAdapterIdtypeMaster(@NonNull Context context, List<CMSSubMasterDB> list) {
        super(context, 0, list);
        mContext = context;
        spinnerList = list;
    }

    @Override
    public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        return getCustomView(position, convertView, parent);
    }

    @Override
    public int getCount() {
        return spinnerList.size();
    }

    @Nullable
    @Override
    public CMSSubMasterDB getItem(int position) {
        return spinnerList.get(position);
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        View listItem = convertView;
        if (listItem == null)
            listItem = LayoutInflater.from(mContext).inflate(R.layout.spinner_list, parent, false);

        CMSSubMasterDB currentMovie = spinnerList.get(position);


        TextView name = (TextView) listItem.findViewById(R.id.spinner);
        name.setText(currentMovie.name);


        return listItem;
    }


    public View getCustomView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        //return super.getView(position, convertView, parent);

        View listItem = convertView;
        if (listItem == null)
            listItem = LayoutInflater.from(mContext).inflate(R.layout.spinner_list, parent, false);

        TextView label = (TextView) listItem.findViewById(R.id.spinner);
        label.setText(spinnerList.get(position).name);


        return listItem;
    }
}

创建RyotManagerFragment

public class CreateRyotManagerFragment extends Fragment {
    Spinner mIDType
    List<CMSSubMasterDB> mIdtypeMasterList;
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.layout_new_ryot, container, false);
        mIDType = view.findViewById(R.id.idtype);
        mIdtypeMasterList = AppUtils.getIDTypeMasterDb();
        SpinnerAdapterIdtypeMaster idTypeMaster = new SpinnerAdapterIdtypeMaster(getActivity().getApplicationContext(), mIdtypeMasterList);
        mIDType.setAdapter(idTypeMaster);
        return view;
    }
}

【问题讨论】:

  • 你的第一个位置设置为空?
  • 是的,我想要空的或任何提示

标签: android spinner adapter


【解决方案1】:
 Try this code,
          List<CMSSubMasterDB> mIdtypeMasterList = new List<CMSSubMasterDB>;
          CMSSubMasterDB cmsdb = new CMSSubMasterDB();
          cmsdb.setName("Select value");
          mIdtypeMasterList.add(cmsdb);
          List<CMSSubMasterDB> mIdList =AppUtils.getIDTypeMasterDb();
          for (int i=0;i<mIdList.size();i++){
             mIdtypeMasterList.add(mIdList.get(i));
           }
       SpinnerAdapterIdtypeMaster idTypeMaster = new 
       SpinnerAdapterIdtypeMaster(getActivity().getApplicationContext(), 
       mIdtypeMasterList);
       mIDType.setAdapter(idTypeMaster);

 mIDType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            @Override
                            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
                                mgetdatacall(position);
                            }

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

                            }
                        });
private void mgetdatacall(int position) {
  if(position != 0) {
    mIdList.get(position - 1).getname();
   }
  }

【讨论】:

  • 这是可行的,但我只想要提示,这种情况下我需要的位置不需要位置
  • 用户选择微调器位置获取 (spinner.getSelectedItemPosition() + 1)
  • 如果您从数据库数组列表 (mIdList) 中获取值而不是使用 (spinner.getSelectedItemPosition() - 1)
  • mIdList.get(mIrrigationType.getSelectedItemPosition()-1);这不起作用,请完整代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多