Java 使用listView片段的Android代码
因此,我的代码在片段中遇到了一些问题,“super(FragmentDishcover.this,R.layout.listviewdishcover,LV_Dishcover);”一行出现了红线。我在网上复制了它的大部分文件,但不知道“getLayoutInflater()”是干什么用的。我以为这是一门新课或什么的,但如果你愿意,我们可以告诉我 我那支离破碎的班级Java 使用listView片段的Android代码,java,android,listview,android-fragments,Java,Android,Listview,Android Fragments,因此,我的代码在片段中遇到了一些问题,“super(FragmentDishcover.this,R.layout.listviewdishcover,LV_Dishcover);”一行出现了红线。我在网上复制了它的大部分文件,但不知道“getLayoutInflater()”是干什么用的。我以为这是一门新课或什么的,但如果你愿意,我们可以告诉我 我那支离破碎的班级 public class FragmentD extends Fragment { public FragmentD()
public class FragmentD extends Fragment {
public FragmentD(){}
private List<NavItemViewlistD> LV_D = new ArrayList<NavItemViewlistD>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_d, container, false);
populateListViewD();
populateListView();
return rootView;
}
private void populateListViewD(){
LV_D.add(new NavItemViewlistD("Trololololol", R.drawable.kittylogotemp, R.drawable.ic_paw_white, 10));
LV_D.add(new NavItemViewlistD("booom", R.drawable.kittylogotemp, R.drawable.ic_paw_white, 20));
LV_D.add(new NavItemViewlistD("ahahahaha", R.drawable.kittylogotemp, R.drawable.ic_paw_white, 30));
}
private void populateListView(){
ArrayAdapter<NavItemViewlistD> adapter = new dListAdapter();
ListView list = (ListView) getActivity().findViewById(R.id.listViewD);
list.setAdapter(adapter);
}
private class dListAdapter extends ArrayAdapter<NavItemViewlistD>{
private dListAdapter(){
super(FragmentD.this, R.layout.listviewd, LV_D);
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
View itemView = convertView;
if(itemView == null){
itemView = getLayoutInflater().inflate(R.layout.listviewd, parent, false);
}
return itemView;
}
}
}
您的做法是错误的。我建议您不要在fragment中包含适配器。请像这样作为单独的类使用
public class SampAdapter extends ArrayAdapter<Contact> {
/**
* @param context
* @param resource
* @param objects
*/
public SampAdapter(Context context, int resource, Contact[] objects) {
super(context, resource, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return super.getView(position, convertView, parent);
}
@Override
public int getCount() {
return super.getCount();
}
如果它不起作用,请更改基本适配器并使用上下文编写自己的构造函数,然后尝试使用ArrayObject。我认为这将有助于创建java类适配器来调用这些项
public class DListViewAdapter extends ArrayAdapter<DListView> {
public DListViewAdapter(Context context, List<DListView> items) {
super(context, R.layout.listviewd, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView == null) {
// inflate the GridView item layout
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.listviewd, parent, false);
// initialize the view holder
viewHolder = new ViewHolder();
viewHolder.ivIcon = (ImageView) convertView.findViewById(R.id.icon);
viewHolder.tvTitle = (TextView) convertView.findViewById(R.id.title);
viewHolder.tvpoints = (TextView) convertView.findViewById(R.id.points);
convertView.setTag(viewHolder);
} else {
// recycle the already inflated view
viewHolder = (ViewHolder) convertView.getTag();
}
// update the item view
DListView item = getItem(position);
viewHolder.ivIcon.setImageDrawable(item.iconAdapter);
viewHolder.tvTitle.setText(item.titleAdapter);
viewHolder.tvpoints.setText(item.pointsAdapter);
return convertView;
}
private static class ViewHolder {
ImageView ivIcon;
TextView tvTitle;
TextView tvDescription;
}
}
并创建布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewD"
android:layout_centerHorizontal="true" />
</RelativeLayout>
我有点忘了在片段上放什么:(替换为getactivity(),而不是FragmentD.this.和private dListAdapter(Context Context,int resource,ArrayAdapter[]LV_D){super(Context,R.layout.listviewd,LV_D);像这样更改。}getactivity()变红:(还有getLayoutInflater()是reduse context.getLayoutInflater()sir ram它只是变红了:(我的头要爆炸XDSir变红了sir如何设置我的数组对象?你能解释一下如何将我的listview放入我的片段中吗?View rootView=inflater.inflate(R.layout.fragment_d,container,false);listview contentlistD=(listview)rootView.findViewById(R.id.ItemListView\u D);NavItemListAdapter ad=新NavItemListAdapter(getActivity(),R.layout.listviewd,YourArrayObject);在“YourArrayObject”中放什么?等一下,您刚刚使用了我发布的链接>_
public class DListViewAdapter extends ArrayAdapter<DListView> {
public DListViewAdapter(Context context, List<DListView> items) {
super(context, R.layout.listviewd, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView == null) {
// inflate the GridView item layout
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.listviewd, parent, false);
// initialize the view holder
viewHolder = new ViewHolder();
viewHolder.ivIcon = (ImageView) convertView.findViewById(R.id.icon);
viewHolder.tvTitle = (TextView) convertView.findViewById(R.id.title);
viewHolder.tvpoints = (TextView) convertView.findViewById(R.id.points);
convertView.setTag(viewHolder);
} else {
// recycle the already inflated view
viewHolder = (ViewHolder) convertView.getTag();
}
// update the item view
DListView item = getItem(position);
viewHolder.ivIcon.setImageDrawable(item.iconAdapter);
viewHolder.tvTitle.setText(item.titleAdapter);
viewHolder.tvpoints.setText(item.pointsAdapter);
return convertView;
}
private static class ViewHolder {
ImageView ivIcon;
TextView tvTitle;
TextView tvDescription;
}
}
public class DListView {
public final Drawable iconAdapter;
public final String titleAdapter;
public final String pointsAdapter;
public DListView(Drawable icon, String title, String points) {
this.iconAdapter = icon;
this.titleAdapter = title;
this.pointsAdapter = points;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewD"
android:layout_centerHorizontal="true" />
</RelativeLayout>