Android 如何使用两个textview创建自定义网格视图

Android 如何使用两个textview创建自定义网格视图,android,gridview,Android,Gridview,如何使用两个textview自定义网格视图的单元格,因为我想在每个单元格中显示两个标签 在我的任务中,我将网格视图视为一个表,它在每个单元格中包含两个不同的值。我已经为此尝试了自定义网格视图,如下所示 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill

如何使用两个textview自定义网格视图的单元格,因为我想在每个单元格中显示两个标签

在我的任务中,我将网格视图视为一个表,它在每个单元格中包含两个不同的值。我已经为此尝试了自定义网格视图,如下所示

<?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">
<Button android:id="@+id/selectBtn"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="Select" android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:minWidth="200px" />
<GridView android:id="@+id/PhoneGrid"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:numColumns="auto_fit" android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp" android:columnWidth="90dp"
    android:stretchMode="columnWidth" android:gravity="center"
    android:layout_above="@id/selectBtn" />
</RelativeLayout>
自定义布局是

<?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">
<TextView android:id="@+id/Name" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_centerInParent="true" />
<TextView android:id="@+id/Number" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" />
</RelativeLayout>
在这里,我需要在一个Gridview中显示姓名和电话号码

帮我找到解决办法

提前感谢。

您希望创建一个适配器类,该类扩展BaseAdapter以在代码中传递到GridView。您需要做的每件事都已经在您需要重写的方法中为您准备好了。安卓系统有一个不错的平台,可以帮助你入门。如果您需要帮助了解每个部分的功能,请在此处查找。很多人都经历过与你现在经历的相同的事情,因此资源充足:

干杯。

您想创建一个适配器类,该类扩展BaseAdapter以在代码中传递到GridView。您需要做的每件事都已经在您需要重写的方法中为您准备好了。安卓系统有一个不错的平台,可以帮助你入门。如果您需要帮助了解每个部分的功能,请在此处查找。很多人都经历过与你现在经历的相同的事情,因此资源充足:


干杯。

您可以点击此链接,并替换imageview的位置,您可以使用文本,您需要的


谢谢

您可以按照此链接,并可以替换imageview的位置,您可以使用文本,您需要的


谢谢

简单地说,我使用了带有多行处理的字符串作为\n

就像你可以像下面那样辅助字符串

String header=first_String_Variable+"\n"+second_String_Variable;
并使用适配器设置网格

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, header);
gridHeader.setAdapter(adapter);

我只是使用了一个具有多行处理的字符串作为\n

就像你可以像下面那样辅助字符串

String header=first_String_Variable+"\n"+second_String_Variable;
并使用适配器设置网格

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, header);
gridHeader.setAdapter(adapter);

你想问什么?你是说如何设置它们?您需要为此编写自定义适配器。您想问什么?你是说如何设置它们?您需要为此编写自定义适配器。我正在使用数据库。我可以将此适配器用于多个或n个数据吗?可以。CursorAdapter有一个名为swapCursor的方法,可以与CursorLoader一起使用。您需要让类实现LoaderManager.LoaderCallbacks。您将获得一些可以覆盖的方法,这些方法可用于使所有这些方法协同工作。对游标装入器进行一些研究。我在这里的一些问题实际上已经在这个问题上得到了回答,所以我知道你会得到一些好东西。你能解释一下这个概念吗。。安第苏。您需要的是两个类:您的主活动或运行它所使用的任何东西,一个您需要创建的自定义游标适配器。但是使用GridView运行布局的活动或片段必须实现LoaderManager.LoaderCallbacks这带来了一些方便的方法,允许您使用空适配器设置GridView,并在后台查询数据库,并在完成后为GridView提供光标。一旦你创建了适配器,它将处理你告诉它的一切。@ShaftShankar有趣的名字顺便说一句,这是我关于这个问题的一个链接:希望它对任何人都有帮助,因为它确实帮助我理解了整个过程的工作原理。我正在使用数据库。我可以将此适配器用于多个或n个数据吗?可以。CursorAdapter有一个名为swapCursor的方法,可以与CursorLoader一起使用。您需要让类实现LoaderManager.LoaderCallbacks。您将获得一些可以覆盖的方法,这些方法可用于使所有这些方法协同工作。对游标装入器进行一些研究。我在这里的一些问题实际上已经在这个问题上得到了回答,所以我知道你会得到一些好东西。你能解释一下这个概念吗。。安第苏。您需要的是两个类:您的主活动或运行它所使用的任何东西,一个您需要创建的自定义游标适配器。但是使用GridView运行布局的活动或片段必须实现LoaderManager.LoaderCallbacks这带来了一些方便的方法,允许您使用空适配器设置GridView,并在后台查询数据库,并在完成后为GridView提供光标。一旦你创建了适配器,它将处理你告诉它的一切。@ShaftShankar有趣的名字顺便说一句,这是我关于这个问题的一个链接:希望它对任何人都有帮助,因为它确实帮助我理解了整个过程的工作原理。这是一个很好的教程,但是如果你使用的是数据库,BaseAdapter将无法工作。您可以做一些额外的工作,解析查询后返回的游标,然后将信息发送到BaseAdapter自定义类,但为什么要在CursorAdapter为您完成所有工作时使其复杂化呢。同时,如果使用CursorAdapter,y
您需要确保在后台执行查询。CursorLoader会自动为您执行此操作。请记住,它只对查询执行此操作,而不是更新、删除、插入等。请查看我在我的答案@ShaftShankar上发布的链接,但如果这些仍然没有帮助,请告诉我,我将在github上为你们创建示例代码。这是一个很好的教程,但如果您使用的是数据库,BaseAdapter将无法工作。您可以做一些额外的工作,解析查询后返回的游标,然后将信息发送到BaseAdapter自定义类,但为什么要在CursorAdapter为您完成所有工作时使其复杂化呢。同时,如果使用CursorAdapter,则需要确保在后台执行查询。CursorLoader会自动为您执行此操作。请记住,它只对查询执行此操作,而不是更新、删除、插入等。请查看我在我的答案@ShaftShankar上发布的链接,但如果这些仍然没有帮助,请告诉我,我将在github上为你们创建示例代码。