📜  如何在 android 中将 textview 添加到 listview - Java (1)

📅  最后修改于: 2023-12-03 15:38:12.479000             🧑  作者: Mango

如何在 Android 中将 TextView 添加到 ListView

在 Android 中,ListView 是一个常用的控件,用于显示列表数据。而 TextView 是一个常用的显示文本的控件。在开发中,我们常常需要将多个 TextView 添加到 ListView 中,以便显示列表项的各个数据。下面将介绍如何将 TextView 添加到 ListView 中。

步骤
1. 准备数据

首先,我们需要准备要显示的数据。在本例中,我们使用一个字符串数组作为数据源。

String[] data = {"Apple", "Banana", "Candy", "Donut"};
2. 定义布局

其次,我们需要定义ListView的布局。在本例中,我们使用Android自带的布局 android.R.layout.simple_list_item_1,它包含一个TextView控件。

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:dividerHeight="1dp"
    android:divider="@color/gray"
    android:listSelector="@android:color/transparent"
    android:background="@android:color/white"
    android:layout_marginTop="10dp"
    android:padding="10dp"
    android:clipToPadding="false"/>
3. 定义适配器

接下来,我们需要定义一个适配器来将数据源与列表项布局关联起来。在本例中,我们简单地继承了Android自带的 ArrayAdapter 类,并在其中实现了自己的布局。

public class MyAdapter extends ArrayAdapter<String> {

    private Context mContext;

    public MyAdapter(Context context, String[] values) {
        super(context, android.R.layout.simple_list_item_1, values);
        mContext = context;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.list_item_layout, parent, false);
        TextView textView = rowView.findViewById(R.id.textview);
        textView.setText(getItem(position));
        return rowView;
    }

}

在适配器的 getView 方法中,我们先使用 LayoutInflater 将我们自定义的布局 list_item_layout.xml 加载到内存中,然后从这个布局中查找到 TextView 控件,并将其设置为对应的数据。最后返回定义好的布局。

4. 设置适配器

最后,我们只需要将适配器和 ListView 关联起来,即可在 ListView 中显示多个 TextView 控件。

ListView listView = findViewById(R.id.listView);
MyAdapter adapter = new MyAdapter(this, data);
listView.setAdapter(adapter);
结论

通过以上步骤,我们成功将多个 TextView 添加到了 ListView 中。需要注意的是,适配器的 getView 方法的实现可以根据具体情况进行调整,以便显示更复杂的布局。