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

我花了将近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。忘记我代码中的按钮,这并不重要。非常感谢你的帮助!


烙印99
浏览 189回答 2
2回答

森林海

你可以用&nbsp;textGreen[i].setOnClickListener(ClickListener);

繁星coding

对于每个视图组件,我们可以像 TextView 一样调用 setOnclickLister()。你可以这样写:allTextView[countTv].setOnClickListener(new View.OnClickListener() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public void onClick(View v) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Code here executes on main thread after user presses button&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp;});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java