首页 > 解决方案 > android中的微调器在单击时显示对象ID

问题描述

我是 android 新手,正在尝试开发我的大学项目,我正在使用自定义适配器类创建微调器,该类在程序运行时扩展数组适配器,它正确显示具有第一类的微调器,但是当我单击微调器查看其他条目时它显示对象值屏幕截图已附加。

但是,在 onItemSelect 方法上,当我选择任何项目并在 Toast 中显示条目时,它会正确显示。

任何帮助将不胜感激。

截屏

还请告诉我如何选择用户保存的类别,我的代码中已经有了。

这是来自 Activity 类的代码。

            mAdapter = new CityAdapter(this,R.id.citytitle , new 
            ArrayList<CitiesModel>());
            spinner.setOnItemSelectedListener(this);
            spinner.setAdapter(mAdapter);
            mAdapter.setDropDownViewResource(R.layout.city_row);

 @Override
    public void onLoadFinished(Loader<List<CitiesModel>> loader, List<CitiesModel> cites) {

        mAdapter.clear();

        if(cites!=null && !cites.isEmpty()) {

            mAdapter.addAll(cites);


        }
    }

    @Override
    public void onLoaderReset(Loader<List<CitiesModel>> loader) {


        mAdapter.addAll(new ArrayList<CitiesModel>());

    }


    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, 
    long id) {
        // On selecting a spinner item
        CitiesModel item = (CitiesModel) parent.getItemAtPosition(position);

        // Showing selected spinner item
        Toast.makeText(parent.getContext(), "Selected: " + item.getCityName(), 
        Toast.LENGTH_LONG).show();
    }

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

    }

适配器类

public class CityAdapter extends ArrayAdapter<CitiesModel> {


    public CityAdapter(@NonNull Context context,@NonNull int textviewId,@NonNull List<CitiesModel> cities)
    {
        super(context,0,textviewId,cities);
    }
    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView,@NonNull ViewGroup parent) {

        CitiesModel rowItem = getItem(position);

        View rowview = convertView;

        if(rowview == null)
            rowview = LayoutInflater.from(getContext()).inflate(R.layout.city_row,parent,false);


  //          CheckBox cityCheck = (CheckBox) rowview.findViewById(R.id.citychk);
            TextView cityTitle = (TextView) rowview.findViewById(R.id.citytitle);
  //          cityCheck.setChecked(rowItem.isChecked());
            cityTitle.setText(rowItem.getCityName());

            return rowview;
    }



}

标签: android

解决方案


推荐阅读