一些代碼如何?下面的代碼假設使用片段,但是您應該能夠適應它(雙關語意圖)與任何舊的直接活動一起使用活動:
聽起來像每個ListView項目都有兩個屬性可以顯示:
因此,模型對象可能看起來像:
public class MyItem {
private String mCategory;
private String mTitle;
public String getCategory() {
return mCategory;
}
// Plus other getters/setters.....
}
如果你想顯示多個字段,你可以使用自定義佈局,你將把它放在res/layout
(我們稱之爲list_item_myitems。XML):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/list_item_categoryTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:textStyle="bold" />
<TextView
android:id="@+id/list_item_titleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="4dp"
android:paddingRight="4dp"/>
</RelativeLayout>
上面的佈局將一個<FrameLayout>
的內部使用時片段被充氣。如果您未使用片段,請在您的活動的佈局XML中包含上述兩個<TextView>
項以上的元素,該元素位於<ListView>
元素下方。
接下來,如何處理呈現每個ListView項目顯示的視圖的自定義適配器類?
public class MyItemAdapter extends ArrayAdapter<MyItem> {
public MyItemAdapter(Activity activity, ArrayList<MyItem> items) {
super(activity, 0, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View ret;
if (convertView == null) {
convertView = getActivity().
getLayoutInflater().
inflate(R.layout.list_item_myitems, null);
}
MyItem item = getItem(position);
TextView dateTextView =
(TextView)convertView.findViewById(R.id.list_item_categoryTextView);
dateTextView.setText(item.getCategory());
TextView titleTextView =
(TextView)convertView.findViewById(R.id.list_item_titleTextView);
titleTextView.setText(item.getTitle());
ret = convertView;
return ret;
}
}
在你ListFragment子類(或活動的子類 - 可能是一個ListActivity子類),創建上面(確保傳遞要顯示項目的集合)並調用setListAdapter(...)的自定義適配器。
玩得開心!
只有代碼答案通常可以從一些解釋性文本中隨代碼一起獲益。 –
感謝您的糾正,下次會記住這一點,這裏只是新的。 – anzala