在列表视图中访问arow的各个元素

时间:2014-03-26 20:43:35

标签: android listview textview android-cursoradapter

我有一个名为CAdapter的自定义游标适配器,它具有以下代码行。

public class CAdapter extends CursorAdapter {

    public CAdapter(Context context, Cursor c) {
        super(context, c);
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {

        TextView titleTV = (TextView) view.findViewById(R.id.listTitle);
        titleTV.setText("#"+cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1)))+" "+
                cursor.getString(cursor.getColumnIndex(cursor.getColumnName(2)))); 
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {

        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View retView = inflater.inflate(R.layout.row_item_layout, parent, false); 
        return retView;
    }

}

row_item_layout.xml文件包含

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical">

    <TextView
        android:id="@+id/listTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="2dp"
        android:focusable="false"
        android:gravity="center_vertical"
        android:text="Example application"
        android:textSize="26sp" />

</RelativeLayout>

我有一个包含listview的活动FavListActivity。我的问题是如何访问列表视图中的textview以更改该textview中文本的颜色。我必须在创建活动时运行该代码(而不是在onItemClickListener中)。如果需要,请询问其他信息。

1 个答案:

答案 0 :(得分:0)

我不知道您使用什么机制来确定您想要更改的列表中的哪一行。以下是几个选项:

        TextView titleTextView = (TextView)listView.getChildAt( 0 ).findViewById(findViewById(R.id.listTitle);
        //do something with the TextView

或者,如果你是一个点击监听器,也许

listView.setOnItemClickListener( new OnItemClickListener() {

    @Override
    public void onItemClick( AdapterView<?> parent, View view, int position, long id ) {

        TextView titleTextView = (TextView) view.findViewById(R.id.listTitle);
        //do something with the TextView

    }
} );