【发布时间】:2016-10-20 14:35:11
【问题描述】:
我正在尝试使用此example 创建一个列表视图。但问题是 listview 根本没有显示。我正在尝试在片段中显示列表视图。显示代码的列表视图如下: BookListFragment.java
public class BookListFragment extends Fragment {
private String[] booktitle;
private String[] call_no;
private String[] due_date;
private String[] renewal;
ArrayList<String[]> bookDetails;
ListView bookList;
BookdetailsAdapter bookdetailsAdapter;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_booklist,
container, false);
bookList = (ListView) view.findViewById(R.id.BooklistView);
DBadapter dBadapter = new DBadapter(getActivity().getApplicationContext());
booktitle = dBadapter.getBookName();
call_no = dBadapter.getCallNo();
due_date = dBadapter.getDue();
renewal = dBadapter.getRenew();
bookDetails = new ArrayList<>();
for (int i = 0; i < 3; i++) {
String[] temp = new String[4];
temp[0] = booktitle[i];
temp[1] = call_no[i];
temp[2] = due_date[i];
temp[3] = renewal[i];
bookDetails.add(temp);
}
bookdetailsAdapter = new BookdetailsAdapter(getActivity(), bookDetails);
bookList.setAdapter(bookdetailsAdapter);
return view;
}}
显示listview的Adapter是BookdetailsAdapter.java
public class BookdetailsAdapter extends ArrayAdapter<String> {
Activity context;
ArrayList<String[]> book;
public BookdetailsAdapter(Activity context, ArrayList<String[]> book) {
super(context, R.layout.booklistview);
this.context = context;
this.book = book;
}
static class ViewHolderItem {
TextView bookTitle, call_no, due, renewal;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolderItem viewHolder;
if (convertView == null) {
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.booklistview, null, true);
viewHolder = new ViewHolderItem();
viewHolder.bookTitle = (TextView) convertView.findViewById(R.id.BookTitle);
viewHolder.call_no = (TextView) convertView.findViewById(R.id.Call_no);
viewHolder.due = (TextView) convertView.findViewById(R.id.Due_Date);
viewHolder.renewal = (TextView) convertView.findViewById(R.id.Remaining_renewal);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolderItem) convertView.getTag();
}
String bookInfo[] = book.get(position);
viewHolder.bookTitle.setText("Pial");
viewHolder.call_no.setText("dada");
viewHolder.due.setText("dadada");
viewHolder.renewal.setText("dadadada");
return convertView;
}}
两个布局文件都在这里fragment_booklist.xml和booklistview.xml
如何显示此列表视图?
【问题讨论】:
-
尝试给出列表视图的静态高度并检查数组列表是否有数据,您可以使用tutorialspoint.com/android/android_list_fragment.htm 和stackoverflow.com/questions/22512833/… 找到帮助