android中的微调器在单击时显示对象id

android中的微调器在单击时显示对象id,android,Android,我是android新手,正在尝试开发我的大学项目,我正在创建带有自定义适配器类的微调器,该类扩展了数组适配器。当程序运行时,它会正确显示带有第一个类别的微调器,但当我单击微调器查看其他条目时,它会显示对象值。屏幕截图已附加 但是,在onItemSelect方法上,当我选择任何项目并在Toast中显示条目时,它会正确显示 我们将非常感谢您的帮助 另外,请告诉我如何选择由用户保存的类别,我的代码中已经有了该类别 下面是活动类的代码 mAdapter = new CityAd

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

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

我们将非常感谢您的帮助

另外,请告诉我如何选择由用户保存的类别,我的代码中已经有了该类别

下面是活动类的代码

            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) {

    }
mAdapter=new CityAdapter(这个,R.id.citytitle,新的
ArrayList());
spinner.setOnItemSelectedListener(此);
旋转器。设置适配器(mAdapter);
mAdapter.setDropDownViewResource(R.layout.city_row);
@凌驾
public void onLoadFinished(加载程序,列表引用){
mAdapter.clear();
if(cites!=null&!cites.isEmpty()){
mAdapter.addAll(cites);
}
}
@凌驾
公共void onLoaderReset(加载器){
addAll(新的ArrayList());
}
@凌驾
已选择公共位置(AdapterView父对象、视图、整型位置、,
长id){
//关于选择微调器项
CitiesModel项=(CitiesModel)父项.getItemAtPosition(position);
//显示所选微调器项
Toast.makeText(parent.getContext(),“Selected:”+item.getCityName(),
Toast.LENGTH_LONG).show();
}
@凌驾
未选择公共无效(AdapterView父级){
}
适配器类

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;
    }



}
公共类CityAdapter扩展了ArrayAdapter{
公共城市适配器(@NonNull上下文,@NonNull int textviewId,@NonNull列表城市)
{
超级(上下文,0,textviewId,城市);
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
CitiesModel rowItem=getItem(位置);
视图行视图=转换视图;
if(rowview==null)
rowview=LayoutInflater.from(getContext()).flate(R.layout.city\u行,父,false);
//复选框cityCheck=(复选框)rowview.findviewbyd(R.id.citychk);
TextView citytle=(TextView)rowview.findViewById(R.id.citytle);
//cityCheck.setChecked(rowItem.isChecked());
setText(rowItem.getCityName());
返回行视图;
}
}

是否尝试了toString()方法?在
行视图上设置的值不是
字符串。检查
CitiesModel#getCityName()
的返回类型。亲爱的Deepak getCityName()正在返回字符串以供您参考。下面是getCityName的代码。公共字符串getCityName(){return cityName;}公共无效setCityName(String cityName){this.cityName=cityName;}