它我在这里的第一篇文章,但我读这个问答&一个多年,我总能找到一个答案,但这个时候,我无法找到它,或者我不能与我的问题相结合多个答案。我希望你能帮忙。Android的碎片+自定义列表视图
所以我有一个覆盖onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// TODO Auto-generated method stub
db = new WineryDatabaseAdapter(getActivity());
bacveList = db.getBacve();
v = inflater.inflate(R.layout.sve_bacve, container, false);
Log.v("onCreateView", "oncreateview");
return v;
}
然后,我有方法,我把我的数据
public void getBacveItems(){
ArrayAdapter<Bacve> ad = new BacveListAdapter(getActivity(), bacveList);
lv = (ListView) v.findViewById(R.id.listSveBacve);
lv.setAdapter(ad);
lv.setOnItemClickListener(this);
Log.v("getBacveItems", "getBacveItems");
}
在该方法中,我打电话给我的适配器,所以我可以用我的ListView布局片段
public class BacveListAdapter extends ArrayAdapter<Bacve>{
List<Bacve> bacve;
Context c;
String[] values = new String[] { "prva","druga" };
public BacveListAdapter(Context c,List<Bacve> l){
//super(c,R.layout.sve_bacve_item,l);
super(c,R.layout.sve_bacve_item,l);
Log.v("BacveListAdapter", "BacveListAdapter");
this.bacve = l;
this.c = c;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View iv = convertView;
TextView tv;
if (iv == null){
iv = (View)((LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.sve_bacve,parent,false);
tv = new TextView(c);
}
else{
Bacve bacva = bacve.get(position);
tv = (TextView) iv.findViewById(R.id.textNazivBacve);
tv.setText(bacva.getIme());
}
return iv;
}
}
但出于某种原因试图访问电视机时,我收到错误。它始终为空。
我认为它与创建/ getted意见的东西,和我创建/得到一些父视图更高的层次。我试图调试它,但不知道如何在调试模式下使用这些ID。好了没怎么用它,但如何比较,所以我可以看到它是右视图。
请帮助:)
我做到了,这样在这个编辑,但一无所获。是因为我使用滑动视图,并且在第一个视图中出现错误视图?
这是我sve_bacve_item,它有TextView的。 我是那种向前1步与@Raghunandan解决方案,但现在我有convertin字符串持有人的问题。我正在努力解决这个问题。
<?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">
<TextView
android:id="@+id/textNazivBacve"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:layout_toRightOf="@+id/bacveIcon"
android:text="@string/BacveNaziv"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/bacveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/textNazivBacve"
android:adjustViewBounds="true"
android:contentDescription="@string/Bacve"
android:maxHeight="120dp"
android:maxWidth="120dp"
android:src="@drawable/bacve_item" />
</RelativeLayout>
BR
为什么IV == NULL?也许是虚假的问题,但他不是想膨胀R.layout.sve_bacve? – Veki
当它膨胀时它会膨胀并且当你膨胀布局时你需要初始化视图。阅读http://stackoverflow.com/questions/11945563/how-listviews-recycling-mechanism-works – Raghunandan
立即查看我的帖子 – Raghunandan