gpt4 book ai didi

android - 在 fragment android中创建listview

转载 作者:IT老高 更新时间:2023-10-28 22:06:07 26 4
gpt4 key购买 nike

作为标题,我想在 Fragment 中创建一个带有自定义行的 ListView 。我的代码如下。

fragment 类

public class PhotosFragment extends Fragment{

public PhotosFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_photos, container, false);

ArrayList<ListviewContactItem> listContact = GetlistContact();
ListView lv = (ListView)getActivity().findViewById(R.id.lv_contact);
lv.setAdapter(new ListviewContactAdapter(getActivity(), listContact));

return rootView;
}

private ArrayList<ListviewContactItem> GetlistContact(){
ArrayList<ListviewContactItem> contactlist = new ArrayList<ListviewContactItem>();

ListviewContactItem contact = new ListviewContactItem();

contact.SetName("Topher");
contact.SetPhone("01213113568");
contactlist.add(contact);

contact = new ListviewContactItem();
contact.SetName("Jean");
contact.SetPhone("01213869102");
contactlist.add(contact);

contact = new ListviewContactItem();
contact.SetName("Andrew");
contact.SetPhone("01213123985");
contactlist.add(contact);

return contactlist;
}
}

适配器类

public class ListviewContactAdapter extends BaseAdapter{
private static ArrayList<ListviewContactItem> listContact;

private LayoutInflater mInflater;

public ListviewContactAdapter(Context photosFragment, ArrayList<ListviewContactItem> results){
listContact = results;
mInflater = LayoutInflater.from(photosFragment);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return listContact.size();
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return listContact.get(arg0);
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}


public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if(convertView == null){
convertView = mInflater.inflate(R.layout.contact_item, null);
holder = new ViewHolder();
holder.txtname = (TextView) convertView.findViewById(R.id.lv_contact_item_name);
holder.txtphone = (TextView) convertView.findViewById(R.id.lv_contact_item_phone);

convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}

holder.txtname.setText(listContact.get(position).GetName());
holder.txtphone.setText(listContact.get(position).GetPhone());

return convertView;
}

static class ViewHolder{
TextView txtname, txtphone;
}
}

但是当我运行应用程序时,什么都没有显示。谁能告诉我这里出了什么问题,我该如何解决?

最佳答案

我猜你的应用程序崩溃是因为 NullPointerException

改变这个

ListView lv = (ListView)getActivity().findViewById(R.id.lv_contact);

ListView lv = (ListView)rootView.findViewById(R.id.lv_contact);

假设listview属于 fragment 布局。

其余的代码看起来还不错

编辑:

好吧,既然你说它不起作用,我自己试过了

enter image description here

关于android - 在 fragment android中创建listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com