2014-09-02 74 views
0

我是新來的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

您是否使用了自定義的適配器來填充ListView ? – 2014-09-02 16:53:42

+0

Oups是的你是對的,我只需要改變廣告中的佈局名稱apter謝謝! – user 2014-09-02 17:00:36

+0

我已將該評論重構爲答案,以最好地解釋該問題。如果它幫助你,請標記爲正確:) – 2014-09-02 17:19:31

回答

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; 
} 
1
  1. LIST_ITEM,如果你想表現出相同類型的數據我的意思是,如果你要創建一個你所創建的第一LIST_ITEM和第二LIST_ITEM攜帶相同的字段,如果是沒有必要再創建一個可以使用相同的list_item通過將它膨脹到任何你想顯示的位置,如果沒有你可以創建一個完全不同的list_item以不同的名字

  2. activity_Schedules.xml您使用id作爲機器人:ID 「@android:ID /列表」,這意味着從Android系統你現有的IDS。如果你想創建一個不同的ID嘗試這種方式「機器人:ID」 somename」