0

想知道如何編碼列表視圖的每行列表視圖2列表視圖。列表視圖與jsoup和2列表視圖中的一行列表視圖

我行將會擁有XML佈局是這樣的:

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

<TextView android:id="@+id/stat_name" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dip" 
    android:textSize="16dip" 
    android:textStyle="bold"/> 

<TextView 
    android:id="@+id/stat_number" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dip" 
    android:textSize="16dip" 
    android:textStyle="bold" 
    android:layout_below="@id/stat_name"/> 


</LinearLayout> 

我到目前爲止的代碼是:

public class PlayerActivity extends Activity { 

public Elements name; 
public Elements num; 
public ArrayList<String> statName = new ArrayList<String>(); 
public ArrayList<String> statNum = new ArrayList<String>(); 
private ArrayAdapter<String> nameAdapter; 
private ArrayAdapter<String> numAdapter; 
private ListView lv; 
String url = "http://www.futhead.com/14/players/141/andrea-pirlo/"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.player); 

    lv = (ListView) findViewById(R.id.listView); 

    new Logo().execute(); 
    new statistics().execute(); 
    nameAdapter = new ArrayAdapter<String>(this, R.layout.simple_list_item_1, R.id.stat_name,statName); 
    numAdapter = new ArrayAdapter<String>(this, R.layout.simple_list_item_1, R.id.stat_number,statNum); 

} 

private class statistics extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... arg) { 
     Document document; 
     try { 
      document = Jsoup.connect(url).get(); 
      num = document.select("div#stats-base p"); 
      statNum.clear(); 
      for (Element element : num) { 
       statNum.add(element.ownText()); 
      } 
      name = document.select("div#stats-base span"); 
      statName.clear(); 
      for (Element element : name) { 
       statName.add(element.ownText()); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 

    } 
    @Override 
    protected void onPostExecute(String result) { 

     lv.setAdapter(nameAdapter); 
     lv.setAdapter(numAdapter); 
    } 
} 

我使用的是正常的ArrayAdapter在第一,直到我意識到,它不支持不止一個textview,所以我想知道如何實現一個可以支持兩個textview的Array適配器。

+0

您應該使用自定義適配器。 –

回答

1

爲了達到這個目的,你必須建立一個自定義的適配器並且膨脹你的自定義行佈局。使用ArrayAdapter不會起作用,因爲

默認情況下,這個類預期所提供的資源ID引用 一個TextView的。如果您想使用更復雜的佈局,請使用也需要字段ID的構造函數。該字段ID應爲 在較大的佈局資源中引用TextView。

轉到此處以獲得how-to-make-a-custom-arrayadapter-for-listview,我建議您通過谷歌搜索一些更好的替代方案來實施其他人Adapters

0

您將不得不爲自己的ListView定義一個自定義Adapter(它將擴展適用於'超級'實現的Adapter類)。您可以指定佈局並根據您的要求分配該自定義佈局的每個組件以顯示數據。

對於適配器來擴展:http://developer.android.com/reference/android/widget/Adapter.html

而且,參照這些:

http://www.vogella.com/tutorials/AndroidListView/article.html
http://www.learn-android-easily.com/2013/06/listview-with-custom-adapter.html
Displaying ArrayList items in ListView contains 2 textviews