[android]动态为生成 id 与按钮单击多个 edittext

我有一个行的 EditText
。我的情况是当用户点击一个按钮,另一个将添加行。我不知怎么实现这个,但两个 EditText
有相同的 id。所以如何分配的 id EditText
动态创建。我 EditText
是在布局的 XML 文件。是可能的与 XML 或我要创建 EditText
以编程方式。先谢谢了。

private void inflateEditRow(String name) {

 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 final View rowView = inflater.inflate(R.layout.row, null);
 final ImageButton deleteButton = (ImageButton) rowView
         .findViewById(R.id.buttonDelete);
 final EditText editText = (EditText) rowView
         .findViewById(R.id.req);

 if (name != null && !name.isEmpty()) {
     editText.setText(name);
 } else {
     mExclusiveEmptyView = rowView;
     deleteButton.setVisibility(View.VISIBLE);
 }

 // A TextWatcher to control the visibility of the "Add new" button and
 // handle the exclusive empty view.
 editText.addTextChangedListener(new TextWatcher() {

     @Override
     public void afterTextChanged(Editable s) {

         if (s.toString().isEmpty()) {
             mAddButton.setVisibility(View.VISIBLE);
             deleteButton.setVisibility(View.VISIBLE);

             if (mExclusiveEmptyView != null
                     && mExclusiveEmptyView != rowView) {
                 mContainerView.removeView(mExclusiveEmptyView);
             }
             mExclusiveEmptyView = rowView;
         } else {

             if (mExclusiveEmptyView == rowView) {
                 mExclusiveEmptyView = null;
             }

             mAddButton.setVisibility(View.VISIBLE);
             deleteButton.setVisibility(View.VISIBLE);
         }
     }


 public void onAddNewClicked(View v) {
 // Inflate a new row and hide the button self.
 inflateEditRow(null);
 v.setVisibility(View.VISIBLE);
}

解决方法 1:
以便动态生成使用窗体视图 Id API 17
generateViewId()
这将生成一个值适合在中使用 setId(int)
。此值将与由 aapt 为在生成时生成的 ID 值不碰撞R.id.

喜欢这个

@Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            EditText editText = new EditText(MainActivity.this);
            editText.setId(editText.generateViewId());
            editText.setHeight(50);
            editText.setWidth(50);
            ll.addView(editText);

        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,924评论 0 17
  • TextView文本框 TextView类的结构 TextView是用于显示字符串的组件,对于用户来说就是屏幕中一...
    墨栉枫阅读 4,910评论 3 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,756评论 25 709
  • 白光穿透了浅灰云 好像是黎明 温风夹着雨丝 问候每个行人的脸庞 撑着伞 驻足的背影有些孤单 看着你挥手 脸上只是微...
    宇光Rain阅读 3,226评论 0 0

友情链接更多精彩内容