Listview 每 6 次重复项目

2023-11-30

希望大家都好;

我知道这个问题之前已经被审查过几次,但经过长时间的搜索,我仍然没有找到解决方案。

我的自定义列表视图每 6 个项目就会重复一次。

已经检查并尝试过:

1-layout_width 和layout_height 不包含wrap_content

2-holder = new ListViewItem() 在内容初始化之前

3-有一个“convertView!= null”

4-holder.linearLayout.getChild() 不能在我的情况下使用,因为布局不是线性的

5- clear()

如果有人可以帮助我,这是我的代码

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;
}

EDIT

MainmenuActivity.java

public class MainmenuActivity extends SlidingActivity{


Button buttononside;
TextView title;
FragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;


@Override
public 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);
    }

@Override
public int getIconResId(int index) {
    return 0;
}

@Override
public 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;
}

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

@Override
public 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, 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(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, add 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:

items.add(new ListViewItem(){{
        ItemTitle = "Starter Title";
        Description= "Your description goes here";
        price=i;
        isChecked = false;
    }});

在 getView() 方法中,之后holder.Descriptiontitle.setText(item.Description);, add:

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);
}

Add the final关键字到ListViewItem item = items.get(position);:

final ListViewItem item = items.get(position);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Listview 每 6 次重复项目 的相关文章

  • 这个方法比 Math.random() 更快吗?

    我是一名初学者 目前已经开始开发一款使用粒子群优化算法的 Android 游戏 我现在正在尝试稍微优化我的代码 并且 for 循环中有相当多的 Math random 几乎一直在运行 所以我正在考虑一种方法来绕过并跳过所有 Math ran
  • 我在哪里可以获得可靠的熵来源(真正的随机性字节[])?

    目前 我正在寻找一种方法来增加随机性的质量 in my Android应用程序 纸牌游戏 之前 估计对于我的情况 52 排列 至少需要 226 位熵 226 个随机位 我打算用这个byte 作为种子SecureRandom SecureRa
  • Android上如何模拟后台Activity因内存不足而被系统杀死的过程?

    我正在处理 内存不足 不再有后台进程 问题 当这种情况发生时 我的活动处于后台并被杀死 我正在尝试保存并加载实例状态来解决它 但因为它并不是每次都会发生 在这种情况下我应该如何测试我的活动 Thanks 您可以通过 adb 强制进程终止 g
  • 从历史堆栈中删除活动

    我的应用程序在用户第一次运行应用程序时显示注册活动 如下所示 活动启动画面 欢迎来到游戏 注册帐户 ActivitySplashScreenSignUp 很好 填写此信息 ActivityGameMain 游戏主屏幕 因此 当用户单击每个屏
  • 使用 HttpClient 时,为什么服务器响应中省略了 Content-Length 标头?

    我正在使用这个问题的源代码如何异步执行httprequest并显示下载响应的进度 https stackoverflow com questions 9594318 how to asynchronous perform a httpreq
  • 从 arraylist 和 hashmap 中删除重复项

    我有一个数组列表 其中包含付款人的姓名 另一个数组列表包含每次付款的费用 例如 nameArray 尼古拉 劳尔 洛伦佐 劳尔 劳尔 洛伦佐 尼古拉 价格数组 24 12 22 18 5 8 1 我需要将每个人的费用相加 所以数组必须变成
  • 需要使用手机后退按钮返回 Web 视图的帮助

    这是我的代码 package com testappmobile import android app Activity import android os Bundle import android view KeyEvent impor
  • Android:我可以创建一个不是矩形的视图/画布吗?圆形的?

    我有一个圆形视图 悬停在主要内容上方 gt 从屏幕出来的 z 轴方向 当有人点击屏幕时 我希望选择主要内容或悬停在上方的视图 当它覆盖主视图时 到目前为止效果很好 我在透明画布上有一个圆形物品 这意味着您可以看到该圆圈之外的背景的所有内容
  • Android:如何使用后台线程?

    我开发了一个应用程序 它从互联网获取内容并相应地在设备的屏幕上显示它 该程序运行得很好 就是有点慢 加载并显示内容大约需要 3 4 秒 我想将获取内容并将其显示在后台线程中的所有代码放在一起 当程序执行这些功能时 我想显示一个进度对话框 你
  • Google 地图删除标记路线上下文菜单

    我使用 Android Studio 的 Google 地图模板启动了一个新项目 并在地图上添加了一个标记 LatLng location new LatLng lat lng Marker marker mMap addMarker ne
  • 具有自定义源集的 Android Gradle 风格 - gradle 文件应该是什么样子?

    我有一个旧的 eclipse 项目 我已经转移到 android studio 并设置为使用flavor 它似乎工作得很好 直到我开始尝试在我的风格之间使用不同的 java 文件 我的项目设置是这样的 ProjectRoot acitonb
  • 如何向开发人员发送崩溃报告?

    我开发 Android 应用程序 但在某些情况下我的应用程序force close 如果出现以下情况 我如何向开发人员发送包含详细信息的电子邮件force close随时发生 The ACRA https github com ACRA a
  • 使用 Android Studio 进行调试永远停留在“等待调试器”状态

    UPDATE The supposed重复是一个关于陷入 等待调试器 执行时Run 而这个问题就陷入了 等待调试器 执行时Debug 产生问题的步骤不同 解决方案也不同 每当我尝试使用Android Studio的调试功能时 运行状态总是停
  • 适用于 Android 的 Google 云端硬盘\文档 API

    我在几个小时内将 Dropbox 与我的应用程序集成 因为 SDK 描述清晰并且有很好的使用示例 Google Drive 似乎只有一个 一刀切 的 Gdata SDK 它非常重 有很多依赖项 它使我的应用程序的大小增加了三倍 而且不是很直
  • Android 纹理仅显示纯色

    我正在尝试在四边形上显示单个纹理 我有一个可用的 VertexObject 它可以很好地绘制一个正方形 或任何几何对象 现在我尝试扩展它来处理纹理 但纹理不起作用 我只看到一种纯色的四边形 坐标数据位于 arrayList 中 the ve
  • 如何使用应用程序接口将蓝牙套接字传递给另一个活动

    因此 根据我收集的信息 套接字连接既不可序列化 也不可分割 但我需要将蓝牙连接传递给另一个活动 我不想作为中间人编写服务 所以请不要将此作为解决方案发布 我听说有一种方法可以使用自定义应用程序接口来传递这些类型的对象 但我一生都找不到这样的
  • 是否可以使用 CardView 为浮动操作按钮制作阴影?

    I know CardView不是为此而设计的 但理论上如果cardCornerRadius view size 2它应该导致圆圈 我错过了什么吗 绘制真实的动画阴影并不困难 您可以尝试在 Froyo 等任何 Android 设备上实现 L
  • 如何在Android中创建一个简洁的两栏输入表单?

    我想创建一个整洁的两列输入表单 如下所示 到目前为止我的 xml 布局代码
  • 使用 DataBindingComponent 的 Inflate 方法

    当 Glide 成功渲染图像后 我在更新文本视图时看到此错误 致命异常 java lang IllegalStateException 必需 CustomBinding 类中的 DataBindingComponent 为 null 绑定适
  • 使用Intent拨打电话需要权限吗?

    在我的一个应用程序中 我使用以下代码来拨打电话 Intent intent new Intent Intent ACTION CALL Uri parse startActivity intent 文档说我确实需要以下清单许可才能这样做

随机推荐

  • 如何使用 Golem Shiny 应用程序将 4 个盒子排成一排?

    我正在尝试将每行 4 个盒子放入我闪亮的应用程序中 BioTuring 和 Scope 我希望与 FLAT 和 GTEx 对齐在同一行 现在看起来是这样的 需要注意的是 这个应用程序是用 golem 结构完成的 因此 请在帮助时牢记并遵循我
  • 从 .mexglx 到 .mex

    我得到了一个使用外部 C 函数的 Matlab 程序 我只有这个外部函数的编译版本 扩展名是 mexglx 从我已经红色的来看 这个扩展似乎是用linux编译的mex文件版本 我在 Windows XP 下运行 matlab 我的问题是我的
  • 如何通过 NPM 脚本使用 Windows 控制台“设置”变量?

    这在 Windows 控制台中按预期工作 set A qwerty echo A 输出 qwerty 但是当我尝试在 NPM 脚本中运行相同的命令时 包 json scripts qwerty set A qwerty echo A gt
  • 使用 JavaScript 自动填写表单

    这是我的代码 function setActualDate var d1 new Date var y d1 getFullYear var d d1 getDate var m1 d1 getMonth 1 var m2 d1 getMo
  • HttpURLConnection POST,conn.getOutputStream() 抛出异常

    我想使用 HttpURLConnection 进行 POST 我正在以两种方式尝试这一点 但在执行时我总是会遇到异常 conn getOutputStream 我在这两种情况下得到的例外是 java net SocketException
  • Java Spring-data Mongo中的Mongodb请求

    我在文档中有一个数组 id id 1 name name 1 additionalData additionalDataId id 1 1 additionalDataName name 1 1 longText A long story
  • 创建一个pandas表

    在使用 pandas 时 如何显示与此类似的表格 我想我必须使用类似于的数据框df pandas DataFrame results 并显示它display display df 但从那里我不知道该怎么办 您可以将字典传递为data当你使用
  • 如何传递带有存储在单个变量中的引号的命令行参数?

    我想从 shell 脚本调用外部应用程序 但此 shell 脚本在单个变量中获取参数 来自其他脚本 一切都很好 直到我不必对单个参数使用双引号 而是用空格分隔单词 这是我的问题的简化示例 sh param 只是打印所有传递的参数 bin s
  • 在消息框中显示非英语文本

    我在 MS Access 中的应用程序中编写了以下代码 以波斯语 非英语 显示消息框 但是当我输入波斯语 Persion 时 它会键入一些特殊 未知 不同的字符 而且当我运行应用程序时 消息框显示特殊 不同的字符 而不是我想要显示的 msg
  • 在 boost::asio 的上下文中,术语“strand”背后的隐喻是什么?

    As a French native and a boost asio user I have added the strand word to my vocabulary is a toron in French here an imag
  • JAVA链表如何用for循环进行循环?

    您好 我正在尝试创建一个循环遍历链表的 for 循环 对于每条数据 它都会单独列出 我想在这里学习链表 所以没有数组建议 有人知道怎么做吗 示例输出 187 航班 501航班 到目前为止我的代码如下 public static Linked
  • 模拟 subprocess.Popen 依赖于导入样式

    当尝试模拟 Popen 时 只有当子进程的导入在单元测试代码和主模块代码中都匹配时 我才能使其成功 给出以下模块 listdir py from subprocess import Popen PIPE def listdir dir cm
  • ActiveMQ 5.11 与 WebSphere 应用程序服务器 8.5

    有谁知道我需要将 ActiveMQ 5 11 中的哪些 jar 与 IBM Websphere Application Server 8 5 一起使用才能创建新的 ActiveMQ JMS 提供程序 我发现与旧版 ActiveMQ 相关的讨
  • iOS 和 OSX 上的 Captive Network Assistant 上的 Ajax

    ajax 可以工作吗强制网络助手在 iOS 和 OSX 上 我在用jquery执行以下操作 但不起作用 这响应文本变量既不是 true 也不是 false 在适当的 Safari 浏览器以及 Android 和 Windows 设备上运行良
  • 从 sympy 求解二阶微分方程组

    我正在使用二阶拉格朗日方程解决多自由度动力学问题 我使用 sympy 来获取运动方程 现在计算导数后这些方程变得相当长 尽管 sympy 简化似乎无法进一步简化它 我的问题实际上是如何从这里解决这个由三个二阶颂歌组成的系统 我不知道如何转换
  • 如何实施单点登录

    我想实现 SSO 单点登录 我发现了很多关于 CAS OpenID 和许多不同事物的链接和文章 我真的迷失了那么我应该使用 CAS 吗 我安装了 CAS Server 并将其部署到 Tomcat 中 你下一步怎么做 或者这是错误的 您能解释
  • 使用 Facebook SDK 4.1.2 创建登录按钮时出现问题

    我正在尝试创建一个应用程序 该应用程序将允许用户通过他们的 Facebook 帐户登录 我想通过 eclipse 使用新的 Facebook SDK 4 1 2 为了在 eclipse 中使用新的 SDK 我遵循本教程 我现在可以在不使用
  • Wix RemoveFile 和 RemoveFolder 用于删除剩余内容

    我有以下 wix 文件 该文件应该在安装过程中调用自定义操作 自定义操作将创建程序所需的一些文件 由于 Wix 只会删除安装程序安装的文件 因此自定义操作创建的文件将被保留 所以我求助于删除文件由维克斯提供 我有以下 Wix 文件
  • 在进程之间共享条件变量和互斥锁:互斥锁之前是否必须锁定?

    我需要一些帮助来理解如何使用 C 中的条件变量来解决练习 这是一个小例子 include
  • Listview 每 6 次重复项目

    希望大家都好 我知道这个问题之前已经被审查过几次 但经过长时间的搜索 我仍然没有找到解决方案 我的自定义列表视图每 6 个项目就会重复一次 已经检查并尝试过 1 layout width 和layout height 不包含wrap con