【问题标题】:Create multiple list item views创建多个列表项视图
【发布时间】:2014-09-02 16:45:16
【问题描述】:

我是安卓开发世界的新手

我的应用中有一个 MainActivity,我在其中显示来自外部 JSON 文件的团队列表

所以我有 activity_main.xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <!-- Main ListView 
         Always give id value as list(@android:id/list)
    -->

     <Button
     android:layout_height="wrap_content"
     android:layout_width="fill_parent"
     android:text="@string/schedules"
     android:onClick="getSchedules" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

我有 list_item.xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" >

    <!-- Name Label -->

    <TextView
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="2dip"
        android:paddingTop="6dip"
        android:textColor="#43bd00"
        android:textSize="16sp"
        android:textStyle="bold" />

    <!-- Email label -->


    <!-- Mobile number label -->
    <TextView
        android:id="@+id/alias"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:text="Mobile: "
        android:textColor="#5d5d5d"
        android:textStyle="bold" />

     <TextView
        android:id="@+id/city"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="2dip"
        android:textColor="#acacac" />

</LinearLayout>

(我是按照教程去做的..)

现在,我创建了另一个活动 SchedulesActivity,我在其中执行完全相同的操作,但使用不同的数据(不同的字段)。所以我创建了 activity_schedules.xml 布局:

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

    <Button
     android:layout_height="wrap_content"
     android:layout_width="fill_parent"
     android:text="@string/teams"
     android:onClick="getTeams" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

现在,我需要创建另一个 list_item.xml 来显示其他数据,但它已经存在。如何创建不同的 list_item 布局。

第二个问题:在 activity_schedules.xml 中,每次我尝试将 ListView 的 id 从列表更改为任何其他 id 时,我都会收到错误消息“找不到与给定名称匹配的源”

谢谢

【问题讨论】:

  • 您是否使用自定义适配器来填充 ListView?
  • Oups 是的,你是对的,我只需要更改适配器中的布局名称,谢谢!
  • 我已将评论重构为答案,以最好地解释问题。如果对您有帮助,请将其标记为正确:)

标签: java android xml android-layout sdk


【解决方案1】:

在您的自定义适配器中,您可以指定将作为视图膨胀的布局的 id。

您可以创建两个不同的适配器并在每个适配器中设置所需的 id,或者您可以通过适配器构造函数传递您需要膨胀的布局的 id。

private int _idLayout;

public ListAdapter(Context context, int idLayout) {
    super(context, idLayout);
    _idLayout = idLayout;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    if(convertView==null){
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        convertView = inflater.inflate(_idLayout, parent, false);
    }

    return convertView;
}

【讨论】:

    【解决方案2】:
    1. list_item,如果你想显示相同类型的数据,我的意思是如果你创建的第一个 list_item 和你要创建的第二个 list_item 携带相同的字段,如果是,则不需要再创建一个,你可以使用相同的list_item 通过在任何你想显示的地方膨胀它,如果没有,你可以创建一个完全不同的 list_item 具有不同的名称

    2. activity_Schedules.xml 您正在使用 id 作为 android:id"@android:id/list" 这意味着您是来自 Android 系统的现有 id。如果你想创建一个不同的 id 试试这种方式 "android:id"somename"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-08
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多