在Custom ListView中的项目上更改TextView的内容

时间:2011-09-11 15:43:44

标签: android listview

我创建了一个自定义ListView,ListView中的每个Item都有3个TextView,现在我想更改位置2的项目TextView的内容(只是示例)。我怎么能这样做?

谢谢!

编辑:

以下是我自定义列表视图项目的布局:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView      
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:maxHeight="80dp"
android:maxWidth="80dp"
android:layout_marginRight="4dp"
android:id="@+id/image"
/>

<LinearLayout 
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
    <TextView 
    android:id="@+id/title"
    android:textSize="14dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Title Video"
    />
    <TextView 
    android:id="@+id/time"
    android:textSize="14dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Title Video"
    />
    <TextView 
    android:id="@+id/viewcount"
    android:textSize="14dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="View Count"
    />
    <TextView 
    android:visibility="invisible"
    android:id="@+id/rtsp"
    android:textSize="14dp"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:text="View Count"
    />
</LinearLayout>
    </LinearLayout>

我使用此代码获取项目:

final ListView list_playlist=(ListView)findViewById(R.id.list2);
LinearLayout rowLayout =(LinearLayout)list_playlist.getItemAtPosition(list_playlist.getFirstVisiblePosition()+current_song);
        ImageView image =(ImageView)rowLayout.getChildAt(0);
        image.setBackgroundResource(R.drawable.play_song_list);

但它不起作用!

1 个答案:

答案 0 :(得分:0)

假设列表中项目的行布局包含在带有3个textviews的线性布局中。然后,如果要访问列表中第二项的第二个文本视图,这将是代码。

LinearLayout rowLayout = (LinearLayout)getListView().getItemAtPosition(1);
TextView secondTextView = (TextView)rowLayout.getChildAt(1);
secondTextView.setText("New Text");