我知道这个问题已经提前几次审查过,但经过长时间的搜索,我仍然没有找到解决方案.
我的自定义列表视图每6项重复一次项目.
已经检查并尝试过:
1- layout_wIDth和layout_height不包含wrap_content
2- holder = new ListVIEwItem()在任何内容初始化之前
3-有一个“convertVIEw!= null”
4- holder.linearLayout.getChild()不能在我的情况下使用,因为布局不是linear
5-晴()
如果有人可以帮助我,这是我的代码
CustomListVIEwAdapter.java的getVIEw()
public VIEw getVIEw(final int position,VIEw convertVIEw,VIEwGroup parent) { ListVIEwItem item = items.get(position); ListVIEwItem holder; VIEw vi=convertVIEw; inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); if(vi==null){ vi = inflater.inflate(R.layout.item,null); holder = new ListVIEwItem(); holder.cb = (CheckBox) vi.findVIEwByID(R.ID.Item1); holder.sp = (Spinner) vi.findVIEwByID(R.ID.Item2); holder.Title = (TextVIEw) vi.findVIEwByID(R.ID.Item3); holder.priceTitle= (TextVIEw) vi.findVIEwByID(R.ID.item4); holder.DescriptionTitle= (TextVIEw) vi.findVIEwByID(R.ID.Item5); vi.setTag(holder); }else{ holder = (ListVIEwItem) vi.getTag(); } holder.Title.setText(item.ItemTitle); holder.priceTitle.setText(item.price+""); holder.DescriptionTitle.setText(item.Description); return vi; }
ListVIEwItem类
static class ListVIEwItem{ public String ItemTitle; public int price; public String Description; public TextVIEw Title; public TextVIEw priceTitle; public TextVIEw DescriptionTitle; public CheckBox cb; public Spinner sp;}
主要活动
public VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState){ VIEw v = inflater.inflate(R.layout.starterbottom,null); ListVIEw myList = (ListVIEw)v.findVIEwByID(R.ID.MyListStarter); List<ListVIEwItem> items = new ArrayList<ListVIEwItem>(); for(int i=0;i<10;i++){ items.add(new ListVIEwItem(){{ ItemTitle = "Starter Title"; Description= "Your description goes here"; price=0; }}); } CustomListVIEwAdapter listadapter = new CustomListVIEwAdapter(getActivity(),androID.R.layout.simple_List_item_1,items); myList.setAdapter(listadapter); return v;}
编辑
MainmenuActivity.java
public class MainmenuActivity extends SlIDingActivity{button buttononsIDe;TextVIEw Title;FragmentAdapter mAdapter;VIEwPager mPager;PageIndicator mIndicator;@OverrIDepublic voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_mainmenu); setBehindContentVIEw(R.layout.sIDemenu); mAdapter = new FragmentAdapter(getSupportFragmentManager()); mPager = (VIEwPager)findVIEwByID(R.ID.pager); mPager.setAdapter(mAdapter); mPager.setoffscreenPagelimit(4); mIndicator = (PageIndicator)findVIEwByID(R.ID.indicator); mIndicator.setVIEwPager(mPager); getSlIDingMenu().setBehindOffset(200); getSlIDingMenu().setMode(SlIDingMenu.RIGHT); getSlIDingMenu().setFadeDegree(0.35f); Title = (TextVIEw) findVIEwByID(R.ID.Title); Title.setText("Starters");}public boolean onCreateOptionsMenu(androID.vIEw.Menu menu) { getMenuInflater().inflate(R.menu.mainmenu,menu); return true;}public voID onClick(VIEw v) { getSlIDingMenu().toggle();}public voID changecolor(VIEw v){ buttononsIDe = (button) findVIEwByID(v.getID()); buttononsIDe.setontouchListener(new OntouchListener(){ @OverrIDe public boolean ontouch(VIEw v,MotionEvent event) { if (event.getAction()==MotionEvent.ACTION_DOWN) buttononsIDe.setBackgroundcolor(color.BLACK); else buttononsIDe.setBackgroundResource(R.drawable.buttonshape); return true; } });}static class ListVIEwItem{ public String ItemTitle; public int price; public String Description; public TextVIEw Title; public TextVIEw priceTitle; public TextVIEw DescriptionTitle; public CheckBox cb; public Spinner sp;}}
FragmentAdapter.java
public class FragmentAdapter extends FragmentPagerAdapter implements IconPagerAdapter{ public FragmentAdapter(FragmentManager fm) { super(fm); }@OverrIDepublic int getIconResID(int index) { return 0;}@OverrIDepublic Fragment getItem(int position) { androID.support.v4.app.Fragment fragment = new Starteractivity(); switch(position){ case 0: fragment = new MainActivity(); break; case 1: fragment = new SecondActivity(); break; case 2: fragment = new ThirdActivity(); break; case 3: fragment = new FourthActivity(); break; } return fragment;}@OverrIDepublic int getCount() { // Todo auto-generated method stub return 4;}@OverrIDepublic CharSequence getPageTitle(int position){ String Title = ""; switch(position){ case 0: Title = "First"; break; case 1: Title = "Second"; break; case 2: Title = "Third"; break; case 3: Title = "Fourth"; break; } return Title; }}
MainActivity.java
public class MainActivity extends Fragment {int i=0;public VIEw onCreateVIEw(LayoutInflater inflater,null); ListVIEw myList = (ListVIEw)v.findVIEwByID(R.ID.MyListStarter); List<ListVIEwItem> items = new ArrayList<ListVIEwItem>(); for(i=0;i<10;i++){ items.add(new ListVIEwItem(){{ ItemTitle = "Title "+i; Description= i+" Your Own description"; price= i; }}); } CustomListVIEwAdapter listadapter = new CustomListVIEwAdapter(getActivity(),R.layout.item,items); myList.setAdapter(listadapter); return v; } }
提前致谢,
问候,
克里斯
在静态类ListVIEwItem中,添加boolean isChecked;
static class ListVIEwItem{ public String ItemTitle; public int price; public String Description; public TextVIEw Title; public TextVIEw priceTitle; public TextVIEw DescriptionTitle; public CheckBox cb; public Spinner sp; public boolean isChecked; // <--- added}
更改项目的初始化:
items.add(new ListVIEwItem(){{ ItemTitle = "Starter Title"; Description= "Your description goes here"; price=i; isChecked = false; }});
在getVIEw()方法中,在holder.DescriptionTitle.setText(item.Description);之后添加:
holder.cb.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { if (((CheckBox) v).isChecked()) { item.isChecked = true; } else { item.isChecked = false; } }});if (item.isChecked) { holder.cb.setChecked(true);} else { holder.cb.setChecked(false);}
将final关键字添加到ListVIEwItem item = items.get(position);:
final ListVIEwItem item = items.get(position);总结
以上是内存溢出为你收集整理的android – Listview每6次复制一次项目全部内容,希望文章能够帮你解决android – Listview每6次复制一次项目所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)