2010-05-05 33 views
0

我剛剛開始使用Android,無法找到如何在我的活動中顯示列表。 活動和佈局main.xml如下所示。 如何在我的佈局的ListView'列表'中顯示國家數組?Android中的listView幫助

謝謝

七月

public class Atable extends ListActivity {  


    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    String[] COUNTRIES = new String[] { "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra"}; 
    setListAdapter(new ArrayAdapter<String>(this, R.layout.main, COUNTRIES)); //I tried this but it does not work 


    } 

main.xml中

<LinearLayout android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
     <TextView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/search" /> 
     <EditText android:id="@+id/search" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 
    </LinearLayout> 

    <LinearLayout android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <ListView android:id="@id/android:list" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"/> 
     <TextView android:id="@id/android:empty" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/noresults"/> 
    </LinearLayout> 

</LinearLayout> 

回答

1

我認爲最簡單的方法是重寫在你的餐廳類的toString方法,並使用ArrayAdapter <餐廳>作爲您的列表內容,然後將其設置爲setAdapter

+0

確定。我有一個String數組。我試過:setListAdapter(new ArrayAdapter (this,R.layout.main,myArrayofString));這不起作用。如何在main.xml中的ListView中顯示字符串數組? – jul 2010-05-05 11:14:06

+0

嘗試在main.xml佈局文件中將android:id =「@ + id/android:list」更改爲android:id =「@ android:id/list」。 這是來自ListActivity的android參考: 「ListActivity的默認佈局由屏幕中央的單個全屏列表組成,但如果您願意,您可以通過設置自己的視圖佈局來自定義屏幕布局在onCreate()中使用setContentView()。要做到這一點,你自己的視圖必須包含一個ID爲「@android:id/list」的ListView對象(或者列表如果它在代碼中)「 – hara 2010-05-05 11:39:48

+0

仍然不起作用。我更新了帖子中的代碼。 – jul 2010-05-05 13:59:51

0

我想這就是你在哪裏試圖做:

import android.app.ListActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 

public class LayoutTest extends ListActivity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     String[] COUNTRIES = new String[] {"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra"}; 
     setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, COUNTRIES)); //I tried this but it does not work 
    } 
} 

的main.xml

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

    <LinearLayout android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <TextView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/search"/> 
     <EditText android:id="@+id/search" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 
    </LinearLayout> 

    <LinearLayout android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <ListView android:id="@android:id/list" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 
     <TextView android:id="@android:id/empty" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/noresults"/> 
    </LinearLayout> 
</LinearLayout>