试图在android中制作自定义listview适配器

时间:2014-03-14 09:28:36

标签: android listview android-listview

我正在尝试在android中创建自定义ListView适配器。我相信我的大部分都是正确的,但我得到的是ClassCastException, android.widget.TextView cannot be cast to java.util.List 以下是发生错误的代码部分:

public View getView(int position, View convertView, ViewGroup parent)
    {
        //create the cells and populating with the vector
        View row = convertView;
        if(row==null)
        {
            row = myInflater.inflate(android.R.layout.simple_list_item_1, parent,  false);
        }
        TextView user = (TextView)row.findViewById(android.R.id.text1);
        user.setText(((List<String>) user).get(position));
        return row;

    }

实现了我的问题,这是我犯下的一个非常愚蠢的错误。我有Textview称为用户,但也有我的名单称为用户,所以试图在同一行上引用它们,它搞砸了。这是正确的代码:

public View getView(int position, View convertView, ViewGroup parent)
    {
        //create the cells and populating with the vector
        View row = convertView;
        if(row==null)
        {
            row = myInflater.inflate(android.R.layout.simple_list_item_1, parent,  false);
        }
        TextView user = (TextView)row.findViewById(android.R.id.text1);
        user.setText(users.get(position));
        return row;

    }

3 个答案:

答案 0 :(得分:0)

您宣布TextView user,但在尝试将其投放到List<String>

后宣布一行
  ((List<String>) user)

导致ClassCastException

答案 1 :(得分:0)

你必须使用列表

示例:

   List<String> myContacts={'john','grand','abc','def'};
   user.setText(myContacts.get(position));

您无法将TextView强制转换为列表

答案 2 :(得分:0)

只需替换此行

 user.setText(((List<String>) user).get(position));

 user.setText((arraylist_.get(position)));