2013-04-29 3 views
0

Я новичок в Android. Пожалуйста, помогите мне. У меня есть два массива String, как показано ниже:Android - String Array to ListView

String[] Array1 = {"ele1", "ele2", "ele3", "ele4", "ele5", "ele6"}; 
String[] Array2 = {"obj1", "obj2", "obj3", "obj4", "obj5", "obj6"}; 

У меня есть ListView в моем макете, как показано ниже:

<ListView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:id="@+id/lytlistView" 
android:layout_marginTop="4dp" 
android:layout_marginLeft="6dp" 
android:layout_marginRight="6dp" 
android:layout_below="@+id/lytListView"> 
</ListView> 

Теперь я хочу, чтобы добавить значения двух массив строк для ListView, как показано в следующем:

------------------------- 
listHeader1 
listContent1 
------------------------- 
listHeader2 
listContent2 
------------------------- 
listHeader3 
listContent3 
------------------------- 

Итак, listHeader[1,2,3,..] содержит Array1[] элементы и listContent[1,2,3,....] содержит Array2[] элементы

Как я могу это достичь? Пожалуйста, помогите мне.

+0

вам нужно использовать hashmap для отображения здесь. – Unknown

+0

использовать пользовательский список просмотров http://techdroid.kbeanie.com/2009/07/custom-listview-for-android.html – rajeshwaran

+1

попробуйте прочитать [это сообщение в блоге] (http : //bartinger.at/listview-with-sectionsseparators/) о секционированных списках – thepoosh

ответ

0

Вы можете просто обернуть два массива к объекту HashMap, а затем просто использовать SimpleAdapter.

+0

Спасибо, я реализовал то же самое и его работу .... – user2326860

0

Объявление строкового массива, как показано ниже.

Изменить Это:

String[] Array1 = [ele1, ele2, ele3, ele4, ele5, ele6]; 

Для

String[] Array1 = {"ele1", "ele2", "ele3", "ele4", "ele5", "ele6"}; 

Вы можете сделать это с помощью пользовательских ListView,

Проверить HERE.

+0

отредактировал мой вопрос .. Пожалуйста, проверьте сейчас ... – user2326860

+0

@ user2326860 pleae обратитесь ссылку. –

+0

@ user2326860 и дайте мне знать, если есть какая-либо ошибка. –

0

Чтобы использовать ListView, у вас должен быть адаптер. Один из способов - преобразовать ваши два массива в один массив {"ele1", "obj1" ...} и использовать ArrayAdapter. Другой способ - написать собственный адаптер.

Если вы не знакомы с ListView и использовать его с адаптерами, я рекомендую следующее руководство:

http://developer.android.com/guide/topics/ui/declaring-layout.html#AdapterViews

0

Для этого вы должны использовать BaseAdapter в качестве адаптера для ListView. Надуйте пользовательский вид, который имеет два текстовых вида в базовом классе адаптера. затем установите этот адаптер в listView.

 public class YourAdapter extends BaseAdapter { 

Context mContext; 
ArrayList<ClubDetailContent> mArrayList; 

public ClubListAdapter(Context mContext, 
     ArrayList<ClubDetailContent> mArrayList) { 
    // TODO Auto-generated constructor stub 
    this.mContext = mContext; 
    this.mArrayList = mArrayList; 
} 

public int getCount() { 
    // TODO Auto-generated method stub 

    return mArrayList.size(); 
} 

public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

public View getView(final int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    LayoutInflater layoutInflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = convertView; 
    view = layoutInflater.inflate(R.layout.listlayout, parent, false); 
    //Add your text view here 
      //set text to that textView according to your string 

    return view; 
    } 


} 

затем установите адаптер в основной деятельности.