Java 视图在listview中重复多次
嗨,伙计们,我在导航抽屉的列表视图中看到了多个文本,我只想看到一次这些文本,并且在男士类别中的简单普通thobes下面,但是我在列表视图中看到了每个文本下面 navu适配器.classJava 视图在listview中重复多次,java,android,navigation-drawer,baseadapter,Java,Android,Navigation Drawer,Baseadapter,嗨,伙计们,我在导航抽屉的列表视图中看到了多个文本,我只想看到一次这些文本,并且在男士类别中的简单普通thobes下面,但是我在列表视图中看到了每个文本下面 navu适配器.class public class Navgation_adapter extends BaseAdapter { private Context context; private List<Data> catdata; private LayoutInflater inflater;
public class Navgation_adapter extends BaseAdapter {
private Context context;
private List<Data> catdata;
private LayoutInflater inflater;
public Navgation_adapter(Context context, List<Data> catdata) {
this.context = context;
this.catdata = catdata;
}
@Override
public int getCount() {
return catdata.size();
}
@Override
public Object getItem(int i) {
return catdata.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if (inflater == null)
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.navigation_list, viewGroup, false);
holder.categories = (TextView) view.findViewById(R.id.categories);
holder.subcategories = (TextView) view.findViewById(R.id.subcategories);
holder.whole = (TextView) view.findViewById(R.id.whole);
holder.catline=view.findViewById(R.id.catline);
holder.catline2=view.findViewById(R.id.catline2);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
Data ndata = catdata.get(i);
if (ndata.getCatergory() == null) {
holder.categories.setText(ndata.getCatergory());
holder.subcategories.setText(ndata.getSubcatergory());
holder.categories.setVisibility(View.GONE);
holder.catline.setVisibility(View.GONE);
holder.catline2.setVisibility(View.VISIBLE);
holder.subcategories.setVisibility(View.VISIBLE);
holder.whole.setVisibility(View.GONE);
holder.whole.setVisibility(View.VISIBLE);
} else {
holder.categories.setText(ndata.getCatergory());
holder.subcategories.setText(ndata.getSubcatergory());
holder.categories.setVisibility(View.VISIBLE);
holder.catline.setVisibility(View.VISIBLE);
holder.catline2.setVisibility(View.GONE);
holder.subcategories.setVisibility(View.GONE);
holder.whole.setVisibility(View.GONE);
}
return view;
}
static class ViewHolder {
TextView categories, subcategories,whole;
View catline,catline2;
}
}[![Image of Navigation drawer][1]][1]
公共类导航适配器扩展了BaseAdapter{
私人语境;
私有列表数据;
私人充气机;
公共NAVU适配器(上下文、列表catdata){
this.context=上下文;
this.catdata=catdata;
}
@凌驾
public int getCount(){
返回catdata.size();
}
@凌驾
公共对象getItem(int i){
返回catdata.get(i);
}
@凌驾
公共长getItemId(int i){
返回i;
}
@凌驾
公共视图getView(int i、视图视图、视图组视图组){
视窗座;
如果(充气器==null)
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
如果(视图==null){
holder=新的ViewHolder();
视图=充气机。充气(R.layout.navigation\u列表,视图组,false);
holder.categories=(TextView)view.findViewById(R.id.categories);
holder.subcategories=(TextView)view.findViewById(R.id.subcategories);
holder.whole=(TextView)view.findViewById(R.id.whole);
holder.catline=view.findViewById(R.id.catline);
holder.catline2=view.findViewById(R.id.catline2);
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
Data ndata=catdata.get(i);
if(nda.getCatergory()==null){
holder.categories.setText(ndata.getCategority());
holder.subcategories.setText(ndata.getsubcategority());
holder.categories.setVisibility(View.GONE);
保持架。catline。设置可见性(视图。消失);
支架.catline2.setVisibility(视图.可见);
持有者。子类别。设置可见性(视图。可见);
支架。整体。设置可见性(视图。消失);
支架.整体.设置可见性(视图.可见);
}否则{
holder.categories.setText(ndata.getCategority());
holder.subcategories.setText(ndata.getsubcategority());
holder.categories.setVisibility(View.VISIBLE);
支架.catline.setVisibility(视图.可见);
支架.catline2.setVisibility(视图.消失);
holder.subcategories.setVisibility(View.GONE);
支架。整体。设置可见性(视图。消失);
}
返回视图;
}
静态类视窗夹{
文本视图类别、子类别、整体;
查看catline,catline2;
}
}[![导航抽屉图像][1][1]
//拆下充气机中的这个
if (inflater == null)
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)
编辑
和设置值字符串(string.xml)
在全局声明变量
private String[] aDrawerTitle = null, aDrawerIcon = null;
获取所有数据
aDrawerTitle = getResources().getStringArray(R.array.app_menu);
aDrawerIcon = getResources().getStringArray(R.array.app_menu_icon);
在string.xml中
<!-- Menu -->
<string-array name="app_menu">
<item>Item - 1</item>
<item>Item - 2</item>
<item>Item - 3</item>
<item>Item - 4</item>
<item>Item - 5</item>
<item>Item - 6</item>
</string-array>
<string-array name="app_menu_icon">
<item>@string/fa_comments_o</item>
<item>@string/fa_envelope_o</item>
<item>@string/fa_globe</item>
<item>@string/fa_calendar</item>
<item>@string/fa_cog</item>
<item>@string/fa_sign_out</item>
</string-array>
项目-1
项目-2
项目-3
项目-4
项目-5
项目-6
@字符串/fau注释
@字符串/fau信封
@串/浮球
@字符串/日历
@串/法齿
@字符串/fa_注销
先生,我想基本适配器中不会有oncreate视图,我的意思是从getView()中移除充气器,您会发现任何错误吗?它的重复性与之前一样,将代码与此演示进行比较:我正试图使用listview内部抽屉布局导航抽屉
private String[] aDrawerTitle = null, aDrawerIcon = null;
aDrawerTitle = getResources().getStringArray(R.array.app_menu);
aDrawerIcon = getResources().getStringArray(R.array.app_menu_icon);
<!-- Menu -->
<string-array name="app_menu">
<item>Item - 1</item>
<item>Item - 2</item>
<item>Item - 3</item>
<item>Item - 4</item>
<item>Item - 5</item>
<item>Item - 6</item>
</string-array>
<string-array name="app_menu_icon">
<item>@string/fa_comments_o</item>
<item>@string/fa_envelope_o</item>
<item>@string/fa_globe</item>
<item>@string/fa_calendar</item>
<item>@string/fa_cog</item>
<item>@string/fa_sign_out</item>
</string-array>