为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 setOnClickListener 设置为以编程方式添加的 TextView?

如何将 setOnClickListener 设置为以编程方式添加的 TextView?

烙印99 2021-10-27 19:01:04
我花了将近2天的时间来解决这个问题。我也搜索了其他类似的问题,但仍然找不到解决这个问题的方法。真的很感谢帮助。  @Override    public void addField() {        if (countTv < 7) {            allTextView[countTv] = new TextView(this);            allTextView[countTv].setId(countTv);            button = new Button(this);            linearLayout = new LinearLayout(this);            linearLayout.setOrientation(LinearLayout.VERTICAL);            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                    LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);            layoutParams.setMargins(0, 50, 0, 0);            button = findViewById(R.id.bt_new_field);            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);            final View rowView = inflater.inflate(R.layout.search_field, null);            allTextView[countTv].setOnClickListener(listener);            llParentField.addView(rowView, layoutParams);        }        countTv++;    }    View.OnClickListener listener = new View.OnClickListener() {        @Override        public void onClick(View v) {            switch (v.getId()){                case 0:                    tag = v.getId();                    toSearchActivity();                    break;                case 1:                    tag = v.getId();                    toSearchActivity();                    break;                case 2:                    tag = v.getId();                    toSearchActivity();                    break;                case 3:                    tag = v.getId();                    toSearchActivity();                    break;            }        }    };注意:我已经尝试了如何实现 View.OnClickListener 的所有可能方法,但仍然无法单击新添加的 TextView。忘记我代码中的按钮,这并不重要。非常感谢你的帮助!
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

你可以用

 textGreen[i].setOnClickListener(ClickListener);


查看完整回答
反对 回复 2021-10-27
?
繁星coding

TA贡献1797条经验 获得超4个赞

对于每个视图组件,我们可以像 TextView 一样调用 setOnclickLister()。


你可以这样写:


allTextView[countTv].setOnClickListener(new View.OnClickListener() {

         public void onClick(View v) {

             // Code here executes on main thread after user presses button

         }

     });


查看完整回答
反对 回复 2021-10-27
  • 2 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信