在Android中获取动态添加的复选框ID

2023-12-10

我在我的应用程序中动态添加一个复选框,并且我想删除选中的记录。但是,我没有得到复选框的 ID。我怎样才能做到这一点?

Code:

package com.my.StudentInfoManagement;


public class ListData extends Activity{

    DataHelper dh;
    TableLayout tb;
    CheckBox[] ch=new CheckBox[50];
    EditText ed;
    int a[]=new int[50];
    int k=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listdataxml);
        dh=new DataHelper(this);
        System.out.println("in list data");
        List<String> names= this.dh.selectAll();
        ed=(EditText) findViewById(R.id.ed_id);
        tb=(TableLayout) findViewById(R.id.table);
        int i,j=1;
        TextView name1 = null,id,dob,gender,branch,email,address,mobile;
        String name11,id1 = null,dob1,gender1,branch1,email1,address1,mobile1;
        TableRow tr=new TableRow(this);

        tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
        TextView tv=new TextView(this);

        String c = null;
        String data[]=new String[50];

        int cnt=0;
        for(String name:names)
            {       
                if((!name.equals("-999")))
                {
                    data[cnt]=name;
                    cnt++;
                    System.out.println("........."+name);
                }
                else
                {
                    cnt=0;
                    name1=new TextView(this);
                    name1.setText(data[1]+" ");
                    id=new TextView(this);
                    id.setText(data[0]+" ");
                    System.out.println("ID is...."+data[0]);
                    dob=new TextView(this);
                    dob.setText(data[3]+" ");
                    gender=new TextView(this);
                    gender.setText(data[2]+" ");
                    branch=new TextView(this);
                    branch.setText(data[4]+" ");
                    mobile=new TextView(this);
                    mobile.setText(data[5]+" ");
                    email=new TextView(this);
                    email.setText(data[6]+" ");
                    address=new TextView(this);
                    address.setText(data[7]+" ");

                    tr=new TableRow(this);
                    tr.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

                    ch[k]=new CheckBox(this);
                    System.out.println("sysout");

                    i=Integer.parseInt(data[0]);
                    ch[k].setId(i);

                    tr.addView(ch[k]);
                    a[k++]=i;

                    tr.addView(id);
                    tr.addView(name1);
                    tr.addView(dob);
                    tr.addView(gender);
                    tr.addView(branch);
                    tr.addView(mobile);
                    tr.addView(email);
                    tr.addView(address);
                tb.addView(tr,new TableLayout.LayoutParams(                         LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
                    j++;
                    System.out.println("count"+j);  
                }
            }
    }

    public void delete(View v){
        System.out.println("In delete");
        int bb=k,id ;
         for (int i=0; i <k; i++) 
        {
             final int j = a[i];
             System.out.println("in for loop"+j);

                ch[j].setOnCheckedChangeListener(new OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView,
                            boolean isChecked) {
                        System.out.println("Checked ID :: " + ch[j].getId());
                    }
                });
            }
        System.out.println("00000000000000000..."+id);
        dh.deleteData(id);

    }
}

强文本只需采取全局变量

int chkId = 1001;

然后在添加复选框时动态地,将其id设置为

ch.setId(++chkId);

然后在删除CheckBox时,您可以获取已检查的 id复选框简单使用

getId()

methhod

请参阅以下演示:

public class ChkBoxesActivity extends Activity {
    int chId = 1000;
    int chPos = -1;

    LinearLayout ll;
    String[] names = {"Tom", "Dick", "Keanu", "Harry", "Katrina", "Peter", "Julia", "Emma"};
    CheckBox[] ch;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ll = (LinearLayout) findViewById(R.id.ll);
        ch = new CheckBox[names.length];

        for(int i=0; i<names.length; i++) {
            ch[i] = new CheckBox(this);
            ch[i].setId(chId++);
            System.out.println("CHID :: "+chId);
            System.out.println("I :: "+i);
            ch[i].setText(names[i]);
            ll.addView(ch[i]);
        }

        for (int i = 0; i < names.length; i++) {
            final int j = i;
            ch[j].setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                        boolean isChecked) {
                    System.out.println("Checked ID :: " + ch[j].getId());
                }
            });
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Android中获取动态添加的复选框ID 的相关文章

  • 您的应用中的 Google Analytics SDK

    我按照这里的说明进行操作 https developers google com analytics devguides collection android v3 https developers google com analytics
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • 需要对某些片段禁用 CollapsingToolbarLayout 的展开

    我有一个AppCompatActivity控制替换许多片段 这是我的布局 活动 main xml
  • 如何以编程方式判断蓝牙设备是否已连接?

    我了解如何获取已配对设备的列表 但如何判断它们是否已连接 这一定是可能的 因为我看到它们列在我手机的蓝牙设备列表中 并且它说明了它们的连接状态 将蓝牙权限添加到您的AndroidManifest中
  • AIRPLANE_MODE 的广播接收器无法与 SDK 26 一起使用

    通常 我使用简单的代码来放置Toast当用户改变AIRPLANE MODE 并且它可以使用targetSdkVersion 25 我的 AirPlaneModeReceiver public class AirPlaneModeReceiv
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • ndk-build error.opencv2/core/core.hpp:没有这样的文件或目录

    我在 Android 中使用 OpenCV Nonfree 模块时遇到问题 我读了这个教程https sites google com site wghsite technical notes sift surf opencv androi
  • 与通用地图相比,MapView 的分辨率较差

    我刚刚收到 HTC Desire 进行测试 我注意到 残留在小于整个屏幕的框架中的地图视图不如通用地图应用程序那么清晰 有什么办法解决这个问题吗 您应该使用 API 级别 4 或更高级别编译应用程序 然后在 AndroidManifest
  • Android - 使用 SAX 解析器解析大文件

    我正在尝试使用 SAX 解析器解析来自 webservice 的 xml 数据 当我尝试使用 URL 解析数据 大小 7 4MB 时 它工作正常 但是当我从 URL 复制 xml 数据并放置 xml 文件时 size 7 4MB 在raw文
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • Fresco:滚动 RecyclerView 后图像消失

    我有一个 Horizo ntal RecyclerView 每个项目都有一个使用 Facebook Fresco 图像库加载到其中的图像 然而 虽然正确的图像最初是在屏幕上滚动一点时加载的 但当 RecyclerView 进一步滚动时 它就
  • 如何在Room的数据库迁移中正确添加索引?

    我在迁移 Room 数据库时遇到问题 在更新的数据库中 我必须将一个字段从整数更改为双精度值 我读到它并不像听起来那么容易 为了做到这一点 我必须使用这个更改后的属性创建新的临时表 复制前一个表中的所有值 删除旧的值 最后重命名临时表 我的
  • Android 5 Lollipop 阴影方向或 y 偏移

    是否有可能改变 Y 偏移的阴影方向 现在我有以下布局
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • Android 两个 Activity 之间的共享元素转换不起作用

    在我的应用程序中 我尝试使用新引入的活动之间共享的元素 如果共享元素具有固定位置 例如 android layout gravity top 但是当视图被锚定时问题就出现了 我的第一个活动如下所示
  • Grade Plugin 3-alpha1 输出文件导致错误

    我正在尝试将项目更新到 Android Studio 3 build gradle 文件中不再接受以下代码片段 applicationVariants all variant gt variant outputs each out gt d
  • Android - 检测视图上的双击和三次点击

    我一直在尝试构建一个可以检测双敲击和三敲击的敲击检测器 在我的努力失败后 我在网上搜索了很长时间以找到可以使用的东西 但没有运气 奇怪的是 像这样的图书馆如此稀缺 有什么帮助吗 你可以尝试这样的事情 尽管我通常建议不要使用三次点击作为一种模
  • 带有工具提示的搜索栏 android

    Hi All 我正在尝试使用工具提示自定义 android 搜索栏 如给定的图像 有没有办法在搜索栏中添加带有拇指的文本视图 或任何其他想法 Thanks 我们可以通过拇指的界限来做到这一点 并在seekbar的progressChange
  • 将主题应用到 v7 支持操作栏

    我正在使用support v7库来实现ActionBar在我的应用程序中 我的styles xml file
  • Android Webview隐私浏览

    我在我的 Android 应用程序中使用 webview 从多个站点获取一些网页 我对 webview 行为有一些疑问 webview 是否存储历史记录 cookie 表单自动填充信息 如果是的话 我们可以阻止它这样做吗 如果 Webvie

随机推荐