java - 无法访问 ListView 内的 TextView

标签 java android listview android-fragments android-listview

我正在使用 Eclipse 开发 Android 应用程序。

我有一个带有 ListView 的 fragment 。我想更改位于 ListView 的一行内的一个 Textview 的文本。

public class FragmentShowList extends Fragment {

public FragmentShowList() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_show_list,
            container, false);  

    ListView lv = (ListView) rootView.findViewById(R.id.lv_show);

    DBAdapter helper = new DBAdapter(getActivity());
    String tableName = Tables.TABLENAME_CATEGORIES_MAIN;
    Tables table = new Tables(tableName);

    Cursor cursor = helper.getCursor(tableName);

    int[] to = new int[] {R.id.row_category_color, R.id.row_category_name};

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(getActivity(), R.layout.row_category, cursor, 
            table.getColumns(), to, 0);
    lv.setAdapter(adapter);

    View view = lv.getChildAt(0);
    //TextView tv = (TextView) view.findViewById(R.id.row_category_name);
    //tv.setText("haha");

    return rootView;

}}

我能够创建和查看列表,但是当我尝试运行带有“//”的最后两行时,应用程序由于“空指针异常”而崩溃

行的 xml 文件是:

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

<TextView
    android:id="@+id/row_category_color"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="10dp"
    android:background="@drawable/rectangle"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/row_category_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp" 
    android:layout_alignTop="@+id/row_category_color"
    android:layout_toRightOf="@+id/row_category_color"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

我似乎无法访问 ListView 的子级,我不知道为什么。有什么想法吗?

提前致谢。

最佳答案

您需要子类化 CursorAdaptor 并为 getView(...) 提供自定义实现。

自定义适配器的

getView(...) 是更改各个列表项的位置。

http://developer.android.com/reference/android/widget/CursorAdapter.html

关于java - 无法访问 ListView 内的 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24167977/

相关文章:

java - WSServletContextListener 和 WSServlet 的职责是什么

java - 如何在java中获取XSSFWorkBook名称?

java - Java 8 是否可以一步创建一个列表或任何其他分组、排序和计数的数据结构?

android - 如何在android中为多个设备和版本开发应用程序

java - 使用 Firebase 适配器填充 ListView

jquery - 如何动态删除本地存储中的单个项目

android - 按下 ListView 项时以动画开始 Activity

java - 从列表中获取最短点条目

android - 如何将媒体插入模拟器的SD卡......?

android - 如何正确使用九贴图