我在我的片段中創建一個ListView並從簡單的字符串列表中獲取結果。ListView不加載項目
Item.java
public class Item implements Parcelable {
public String message;
public Item(String message) {
this.message = message;
}
protected Item(Parcel in) {
message = in.readString();
}
public static final Creator<Item> CREATOR = new Creator<Item>() {
@Override
public Item createFromParcel(Parcel in) {
return new Item(in);
}
@Override
public Item[] newArray(int size) {
return new Item[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
}
}
item_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_text"
android:textSize="12sp"/>
</LinearLayout>
ListAdapter.java
public class ItemListAdapter extends ArrayAdapter<Item> {
public ItemListAdapter(Context context, ArrayList<Item> items) {
super(context, 0, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
Item item = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_layout, parent, false);
}
TextView messageText = (TextView) convertView.findViewById(R.id.item_text);
messageText.setText(item.message);
return convertView;
}
}
BeveragesItemListFragment.java
public class BeveragesItemListFragment extends ListFragment {
private ArrayList<Item> array_of_items = new ArrayList<>();;
private List<String> bevs = Arrays.asList("קולה", "קולה זירו", "דיאט קולה", "נסטי אפרסק");
public BeveragesItemListFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.list_fragment, container, false);
TextView title = (TextView) v.findViewById(R.id.list_title);
title.setText("שתיה קלה");
ItemListAdapter adapter = new ItemListAdapter(getActivity().getApplicationContext(), array_of_items);
for (String bev: bevs) {
Item newItem = new Item(bev);
adapter.add(newItem);
}
return v;
}
}
應用程序不會崩潰 - 片段加載其標題,一切看起來都很好。但是,我沒有在ListView中看到預定義的字符串。也許問題是我在ItemListAdapter
初始化中通過的上下文嗎?
我試過把adapter.notifyDataSetChanged()
但這也沒有幫助。