如何在android中点击动态创建的编辑文本时获取编辑文本的ID?

2024-01-10

我正在根据项目要求在布局中动态创建视图。视图序列来自 json 。当我单击编辑文本时,时间选择器函数会调用在编辑文本中设置时间,但是当我设置编辑文本值时,它会给出上次创建的编辑文本的 ID。 这是我的代码:-

for (i = 0; i < alist_interface_type.size(); i++) {
                 if(alist_interface_type.get(i).equals("textbox")) {
                        LinearLayout lLayout = new LinearLayout(getActivity());
                        lLayout.setOrientation(LinearLayout.VERTICAL);
                        lLayout.setPadding(5, 5, 5, 5);
                        lLayout.setBackgroundColor(Color.parseColor("#E0E0E0"));
                        label = new TextView(getActivity());
                        label.setText(example.get(i));
                        label.setTextSize(16);
                        label.setTextColor((Color.parseColor("#01c534")));
                        label.setPadding(5, 5, 5, 5);
                        et = new EditText(getActivity());
                        et.setSingleLine(true);
                        et.setId(i);
                        et.setTextSize(18);
                        et.setPadding(5, 5, 5, 5);
                        if (!data_type.get(i).toString().equals("text")) {
                            InputFilter[] filters = new InputFilter[1];
                            filters[0] = new InputFilter.LengthFilter(Integer.parseInt(data_type.get(i).toString())); 
                            et.setFilters(filters);
                        }
                         LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                                LayoutParams.MATCH_PARENT,
                                LayoutParams.WRAP_CONTENT);
                        lLayout.addView(label, lp);
                        lLayout.addView(et, lp);
                        ll.addView(lLayout);
                        lp.setMargins(5, 0, 5, 5);
                        lLayout.setLayoutParams(lp);
                        alist_id.add(i);
                        alist_views.add("EditText");
                    }
                else if (alist_interface_type.get(i).equals("time") {
                    LinearLayout lLayout = new LinearLayout(getActivity());
                    lLayout.setOrientation(LinearLayout.VERTICAL);
                    lLayout.setPadding(5, 5, 5, 5);
                    lLayout.setBackgroundColor(Color.parseColor("#E0E0E0"));
                    label = new TextView(getActivity());
                    label.setText(example.get(i));
                    label.setTextSize(16);
                    label.setTextColor((Color.parseColor("#01c534")));
                    label.setPadding(5, 5, 5, 5);
                    et2 = new EditText(getActivity())
                    {
                        public boolean getDefaultEditable() {
                            return false;
                        }
                    };
                    et2.setSingleLine(true);
                    et2.setId(i);
                    et2.setTextSize(18);
                    Log.d("edit text cliked", ""+i);
                    et2.setText(pref.getString(alist_Label_name.get(i),""));
                    et2.setPadding(5, 5, 5, 5);
                    if (!data_type.get(i).toString().equals("text")) {
                        InputFilter[] filters = new InputFilter[1];
                        filters[0] = new InputFilter.LengthFilter(Integer.parseInt(data_type.get(i).toString())); 
                        et2.setFilters(filters);
                    }
                     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                            LayoutParams.MATCH_PARENT,
                            LayoutParams.WRAP_CONTENT);
                    lLayout.addView(label, lp);
                    lLayout.addView(et2, lp);
                    lp.setMargins(5, 0, 5, 5);
                    lLayout.setLayoutParams(lp);
                    ll.addView(lLayout);
                    alist_id.add(i);
                    alist_views.add("time");
                    et2.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub

                            Log.d("id of edit text", ""+et2.getId());
                            timePicker();
                        }
                    });
                }

                    }

In this code alist_interface_type is arraylist that containing my views.If this list contains "time" then create edit text and click on edit text call time picker method for selecting time and set to edit text.I am giving the value of i to id of edit text.On click of edit text it doesn't give the id of particular clicked edit text to set the value . enter image description here


// try this way,hope this will help you...

et2.setTag(et2.getId());
et2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(final View v) {
      // TODO Auto-generated method stub

      Log.d("id of edit text", ""+et2.getId());
      timePicker(new OnTimeSelected(){
           public void onSelect(String time){
               ((EditText)v.getTag()).setText(time);
           }
      });
    }
});


interface OnTimeSelected{
  public void onSelect(String time);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中点击动态创建的编辑文本时获取编辑文本的ID? 的相关文章

随机推荐

  • 当变量等于x时触发事件 - python

    我有以下脚本 每次按下按钮时都会增加计数器 当计数器达到某个数字 即 10 时 可以说我想要触发一个事件 from RPi import GPIO from time import sleep clk 25 dt 8 GPIO setmod
  • 无法从 RecyclerView.OnScrollListener 调用 notificationItemInserted()

    最近我升级了我的recyclerview v7 23 to recyclerview v7 24 2 0 我的应用程序有一个无限滚动列表 错误消息指向该行notifyItemInserted当我将加载视图添加到RecyclerView 空对
  • 将数据追加到 localStorage 对象

    我正在尝试将新对象添加到当前的 localStorage 对象 但没有成功 最后 我得到的不是 localStorage 中的两组数据 而是最后一组数据 对我做错了什么有任何见解吗 谢谢 这就是我想做的 add the first stud
  • Electron - node.js - ng :无法加载文件路径\ng.ps1,因为在此系统上禁用了运行脚本

    我正在尝试编译一个项目Windows 10 in Visual Studio Code 我的设置如下 1 npm版本6 12 2 Node js版本12 13 3 Angular CLI 8 3 19 我遇到的问题是当我尝试运行时ng se
  • Spring MVC 覆盖接收到的内容类型

    我正在开发 Spring MVC 应用程序 并且有一个我无法控制的客户端 该客户端正在 POST JSON 数据 但传输application x www form urlencoded标头 Spring 自然信任此标头并尝试接收数据 但由
  • AMD:javascript 上下文的目的是什么?

    关于AMD 异步模块定义 我读到的阶段是这样的 AMD 格式来自于想要一种比 今天的 编写一堆带有隐式依赖关系的脚本标签 你必须手动订购 和一些易于使用的东西 直接在浏览器中 javascript 上下文的目的是什么 你能举个例子吗 使用
  • SQLiteDiskIOException:创建数据库时磁盘 I/O 错误

    我正在使用以下代码在 android 中创建数据库 public class PackageDBHelper extends SQLiteOpenHelper The Android s default system path of you
  • 向 li 元素添加自动增量值

    我是一名 css 设计师 所以请原谅我不了解任何 js 基本上我想知道如何使用 javascript jquery 将自动增量 id 添加到列表项中 以获取我试图添加一些 css 的内容 before li a href Item numb
  • 从 C# 对象动态构建 SQL WHERE 子句 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 HTTP POST 请求在与 asp net Web API 绑定的 HTML 表中创建过
  • 原则 2:错误:类“..\..”没有名为“...”的字段或关联

    在搜索时 我发现了许多有类似问题的人的结果 但它们总是与关联错误有关 我正在尝试将一个简单的文本字段添加到数据库中的表中 但在我的一生中 我无法弄清楚这次有什么不同 当我以前多次这样做时没有出现任何问题 我已将 record checksu
  • 形成相同 AVL 和展开树的序列?

    是否存在这样一个数字序列 1 7 使用所有数字 每个数字仅一次 可以形成相等的 AVL 和展开树 好吧 出于科学的兴趣 我根据各自的维基百科文章在 Python 中实现了 AVL 和展开树 假设我没有在某个地方犯错误 我的发现是不存在产生相
  • 内存使用率高 - 应用程序响应缓慢:已用内存值没有减少 + 可用内存值没有增加

    当应用程序使用几分钟后 它会慢慢增加Used记忆值和减少Free记忆值 几分钟后应用程序变得非常慢 为什么不释放内存 系统配置 CPU Intel R Xeon R Platinum 8175M CPU 2 50GHz 处理器数量 4 CP
  • 指向对象开头的指针 (C++)

    我需要一种方法来获取指向 C 中对象开头的指针 该对象在模板内部使用 因此它可以是任何类型 多态或非多态 并且可能是使用多重继承的对象 I found 本文 http accu org index php journals 450它描述了一
  • 使用 Catalyst 移植到 Mac 时排除 pod

    将应用程序移植到 Mac 终于成为可能 这要归功于Catalyst问题是 许多 pod 不支持 AppKit 最常见的是 Crashlytics Firebase In Pods Crashlytics iOS Crashlytics fr
  • 在 Db2 中处理 BOOLEAN 值的最佳方法是什么?

    Database Db2 Scenario 我有一个专栏需要是真还是假 我找到了两个资源来说明如何实现这一目标 但是 当我将它们放在一起时 我收到错误 布尔值 https www ibm com support knowledgecente
  • 如何从ganglia的数据库中获取数据

    我想使用 ganglia 的数据来分析我们的集群 但我不知道 ganglia 的数据库在哪里 以前有人这样做过吗 gmetad 上存储指标数据的是rrd 文件 通常默认路径是 var lib ganglia rrds
  • 中使用 readonly 属性而不改变光标

    如果我有一个
  • HttpWebRequest排队库,保证请求交付

    只是想知道是否存在框架类来处理请求排队 发送请求时 应将其添加到队列中 如果出现问题 没有互联网 则应存储请求 并稍后尝试再次发送 同时 可以创建更多请求 如果仍然没有网络 则所有新请求都应存储在队列中 并在网络恢复时再次发送 打算实现相同
  • 我应该担心 std::vector 的内存碎片吗?

    我应该担心 std vector 的内存碎片吗 如果是这样 有什么方法可以帮助预防吗 我并不总是预测我的程序会在 PC 上运行 它们也可能会在嵌入式设备 游戏控制台上运行 因此我并不总是能够依赖虚拟内存 然后 我再次相信使用动态大小的数组而
  • 如何在android中点击动态创建的编辑文本时获取编辑文本的ID?

    我正在根据项目要求在布局中动态创建视图 视图序列来自 json 当我单击编辑文本时 时间选择器函数会调用在编辑文本中设置时间 但是当我设置编辑文本值时 它会给出上次创建的编辑文本的 ID 这是我的代码 for i 0 i lt alist