2012-09-13 153 views
0

我創建了ListView活動來列出從服務器檢索到的一些數據。使用簡單適配器的Android ListView

這是ListAtmActivity

public class ListAtmActivity extends ListActivity{ 

private static String url ="http://10.0.2.2:8080/hello/AvailabilityResponse"; 

private static final String ATM_NO = "atmbrno"; 
private static final String ATM_PLACE = "atmbrname"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.list_item); 


    String brName=getIntent().getExtras().getString("key"); 


    // Hashmap for ListView 
    ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>(); 

    // Creating JSON Parser instance 
    JSONParser jParser = new JSONParser(); 

    // getting JSON string from URL 
    JSONArray contacts = jParser.getJSONFromUrl(url,brName); 

    try{ 

     for(int i = 0; i < contacts.length(); i++){ 
      JSONObject json_data = contacts.getJSONObject(i); 

      // Storing each json item in variable 
      String atm_id = json_data.getString(ATM_NO); 
      String atm_name = json_data.getString(ATM_PLACE); 

      HashMap<String, String> map = new HashMap<String, String>(); 

      map.put(ATM_NO, atm_id); 
      map.put(ATM_PLACE, atm_name); 

      contactList.add(map);     
     }      
    } 

    catch(JSONException e) { 
     e.printStackTrace(); 

    } 
    /** 
    * Updating parsed JSON data into ListView 
    * */ 
    ListAdapter adapter = new SimpleAdapter(this, contactList, 
      R.layout.list_main, 
      new String[] { ATM_NO, ATM_PLACE }, new int[] { 
        R.id.name , R.id.email }); 

    setListAdapter(adapter); 

    //setContentView(R.layout.list_main); 

}} 

我的聯繫人數組就是這樣的。

{"atmbrname":"ANURADAPURA [ATM 2]","atmbrno":"ATM084"}, 
{"atmbrname":"MANNAR BRANCH ","atmbrno":"ATM344"} 

這裏我的兩個xml文件也。

list_item.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" > 

<ListView android:id="@android:id/list" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" />  
</LinearLayout> 

list_main.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" > 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <!-- Name Label --> 
    <TextView 
     android:id="@+id/name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#43bd00" 
     android:textSize="16sp" 
     android:textStyle="bold" 
     android:paddingTop="6dip" 
     android:paddingBottom="2dip" /> 
    <!-- Description label --> 
    <TextView 
     android:id="@+id/email" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#acacac" 
     android:paddingBottom="2dip"> 
    </TextView> 

</LinearLayout> 

但我不能讓列表視圖。沒有錯誤出現。我認爲我的XML文件存在問題。誰能幫我解決這個問題..

+0

它只是一個空白的屏幕? – fasheikh

+0

是的..它是空白的黑色屏幕..只是應用程序名稱是作爲標題。 – Dasaya

+0

嘗試切換佈局,即setContentView(R.layout.list_main)和充氣list_item.xml – fasheikh

回答

0

我會嘗試設置高度爲「match_parent」。但不知道這是否能解決您的問題。

我只有ListActivity的問題,因此我總是使用正常的Activity並從Activityview的Contentview中檢索ListView。