如何在ListView的每一行中将setText设置为TextView

时间:2014-12-11 05:01:33

标签: java android listview android-listview

大家好我是Android新手,也是stackoverflow,问候和感谢您的帮助。

我有2个Xml文件用于同一个活动。一个包含ListView,第二个作为我的ArrayAdapter的自定义布局,填充ListView,它也包含在我的第一个布局中:

<include android:id="@+id/lv" layout="@layout/lv_row" />

ListView自定义布局(lv_row.xml):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">


    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/icon"
        android:src="@drawable/ic_launcher"/>
    <TextView
        android:layout_toRightOf="@+id/icon"
        android:layout_width="fill_parent"
        android:layout_height="38dp"
        android:textSize="30sp"
        android:id="@+id/label"/>
    <TextView
        android:layout_toRightOf="@+id/icon"
        android:layout_below="@+id/label"
        android:layout_width="fill_parent"
        android:layout_height="12dp"
        android:gravity="bottom"
        android:id="@+id/label2"

        android:textSize="12sp"/>

</RelativeLayout>

这是我的适配器:

final ArrayAdapter<String> Array = new ArrayAdapter<String>(this,R.layout.lv_row,R.id.label,myList);

我将字符串逐个保存到&#34; myList&#34;并在我的ListView上显示它们,我想要做的是使用idNum.setText(iterating_variable.toString())枚举列表视图中的元素...但它不会起作用,因为idNum总是得到在XML文件。

这是我用来将第二个XML与我的Java代码链接起来的代码

lv = (RelativeLayout) findViewById(R.id.lv);        
    idNum = (TextView) lv.findViewById(R.id.label2);

再次感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在适配器的setText()方法中创建自定义适配器和getView() 喜欢

class CustomAdapter extends BaseAdapter {

    private ArrayList<String>   mList;
    private LayoutInflater      mInflater;
    public CustomAdapter(ArrayList<String> list) {
        mList = list;
        mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {

        return mList.size() ;
    }

    @Override
    public Object getItem(int position) {
        return mList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }


    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        if (convertView == null) 
            convertView = mInflater.inflate(R.layout.lv_row, null);
    ((TextView) convertView.findViewById(R.id.label2)).setText(mList.get(position));
    return convertView;
    }
}

并设置为ListView