2014-09-02 3 views
0

Я новичок в андроид developping мираСоздания нескольких элементов списка просмотры

У меня есть 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 из списка какой-либо другой идентификатор, я получил сообщение об ошибке «Нет источников не найдено, что соответствует данному имени»

Спасибо вам

+1

вы используете пользовательский адаптер для заполнения ListView ? –

+0

Oups да, вы правы, мне просто нужно изменить имя макета в объявлении apter спасибо! – user

+0

Я отредактировал комментарий как ответ, чтобы лучше объяснить проблему. Пожалуйста, отметьте это как правильно, если это вам помогло :) –

ответ

1

В пользовательском адаптере, вы можете указать идентификатор макета, который будет раздувать как вид

Вы. может создать два различных адаптера и установить в каждом нужный идентификатор, или вы можете пройти через конструктор адаптера идентификатор макете, что вам нужно надуть.

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. Активность_Schedules.xml Вы используете id как android: id "@android: id/list", что означает, что вы существуете в системе Android. Если вы хотите создать другой идентификатор попробовать этот путь «андроид: ИД» SomeName»

Смежные вопросы