簡體   English   中英

創建多個列表項視圖

[英]Create multiple list item views

我是android開發世界的新手

我的應用程序中有一個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時,都會出現錯誤“找不到與給定名稱匹配的源”

謝謝

  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”

在自定義適配器中,您可以指定將作為視圖膨脹的布局的ID。

您可以創建兩個不同的適配器,並在每個適配器中設置所需的ID,也可以通過Adapter構造函數傳遞需要膨脹的布局的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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM