Android 填充微调器时出现的问题

Android 填充微调器时出现的问题,android,spinner,Android,Spinner,我用一些数据填充了一个微调器,如下所示: adapter = newSpinAdapter(this,com.Orange.R.layout.spinnerrowlist,spinnerInfo); adapter.setDropDownViewResource(com.Orange.R.layout.multiline_spinner_dropdown_item); previousVisitCommentsSpinner.setAdapter(adapter

我用一些数据填充了一个微调器,如下所示:

adapter =
newSpinAdapter(this,com.Orange.R.layout.spinnerrowlist,spinnerInfo);                  adapter.setDropDownViewResource(com.Orange.R.layout.multiline_spinner_dropdown_item);
previousVisitCommentsSpinner.setAdapter(adapter);

public class UserComments {
    public String coach;
    public String comment;
    public String date;

    public UserComments(String coach, String comment, String date) {
        this.coach = coach;
        this.comment = comment;
        this.date = date;
    }
}

    public class SpinAdapter extends ArrayAdapter<UserComments>{
        private Context context;
        private ArrayList<UserComments> spinnerInfo;

        public SpinAdapter(Context context, int textViewResourceId, ArrayList<UserComments> spinnerInfo){
            super(context, textViewResourceId, spinnerInfo);
            this.spinnerInfo = spinnerInfo;
        }

        @Override
    public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null) {
        LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.spinnerrowlist, null);
    }

            Visit.UserComments info = spinnerInfo.get(position);

            if (info != null) {
        TextView spinneritem1 = (TextView) v.findViewById(R.id.textview_spinner1);
        TextView spinneritem2 = (TextView) v.findViewById(R.id.textview_spinner2);
                    TextView spinneritem3 = (TextView) v.findViewById(R.id.textview_spinner3);

        if (spinneritem1 != null) {
                        spinneritem1.setText(info.coach);
                        spinneritem1.setTextColor(getResources().getColor(
                            R.color.medium_gray));
        }

        if (spinneritem2 != null) {
                        spinneritem2.setText(info.comment);
                        spinneritem2.setTextColor(getResources().getColor(
                            R.color.medium_gray));
            }

                    if (spinneritem3 != null) {
                        spinneritem3.setText(info.date);
                        spinneritem3.setTextColor(getResources().getColor(
                            R.color.medium_gray));
            }

        }
            return v;
        }

    }
这是我代码的一部分。这是微调器的外观:

这没关系

但当我点击它时,我看起来像这样:

当它未被选中时,它不会显示与状态中相同的数据!!!! 选择时应显示的数据应为:2012-09-03秒11。谁能告诉我哪里出了问题???解决办法是什么。Thx

在UserComments中覆盖toString方法并返回您希望在微调器中可见的文本。

在UserComments中覆盖toString方法并返回您希望在微调器中可见的文本。

您应该覆盖UserComments类中的toString,例如:

public class UserComments {
    public String coach;
    public String comment;
    public String date;

    public UserComments(String coach, String comment, String date) {
        this.coach = coach;
        this.comment = comment;
        this.date = date;
    }

    @Override
    public String toString() {
        return date + " " + comment + " " + coach;
    }
}
您应该在UserComments类中重写toString,例如:

public class UserComments {
    public String coach;
    public String comment;
    public String date;

    public UserComments(String coach, String comment, String date) {
        this.coach = coach;
        this.comment = comment;
        this.date = date;
    }

    @Override
    public String toString() {
        return date + " " + comment + " " + coach;
    }
}
如果不重写toString,微调器将使用默认的toString方法(继承自Object),该方法打印对象的类,后跟其内部哈希代码。如果不重写toString,微调器将使用默认的toString方法(继承自Object),该方法打印对象的类,后跟其内部哈希代码。