Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将setOnClickListener设置为以编程方式添加的TextView?_Java_Android_Android Studio_Textview_Onclicklistener - Fatal编程技术网

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

Java 如何将setOnClickListener设置为以编程方式添加的TextView?,java,android,android-studio,textview,onclicklistener,Java,Android,Android Studio,Textview,Onclicklistener,我花了将近两天的时间来解决这个问题。我也搜索过其他类似的问题,但仍然找不到解决这个问题的方法。非常感谢你的帮助 @Override public void addField() { if (countTv < 7) { allTextView[countTv] = new TextView(this); allTextView[countTv].setId(countTv); button

我花了将近两天的时间来解决这个问题。我也搜索过其他类似的问题,但仍然找不到解决这个问题的方法。非常感谢你的帮助

  @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;
                case 4:
                    tag = v.getId();
                    toSearchActivity();
                    break;
                case 5:
                    tag = v.getId();
                    toSearchActivity();
                    break;
                case 6:
                    tag = v.getId();
                    toSearchActivity();
                    break;
            }
        }
    };
@覆盖
public void addField(){
if(countTv<7){
allTextView[countTv]=新的TextView(此);
allTextView[countTv].setId(countTv);
按钮=新按钮(此按钮);
linearLayout=新的linearLayout(本);
linearLayout.setOrientation(linearLayout.VERTICAL);
LinearLayout.LayoutParams LayoutParams=新的LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_父项,LinearLayout.LayoutParams.WRAP_内容);
layoutParams.setMargins(0,50,0,0);
按钮=findViewById(R.id.bt\u新字段);
LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务);
最终视图行视图=充气机。充气(R.layout.search_字段,空);
allTextView[countTv].setOnClickListener(listener);
llParentField.addView(行视图,布局参数);
}
countTv++;
}
View.OnClickListener=newview.OnClickListener(){
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例0:
tag=v.getId();
toSearchActivity();
打破
案例1:
tag=v.getId();
toSearchActivity();
打破
案例2:
tag=v.getId();
toSearchActivity();
打破
案例3:
tag=v.getId();
toSearchActivity();
打破
案例4:
tag=v.getId();
toSearchActivity();
打破
案例5:
tag=v.getId();
toSearchActivity();
打破
案例6:
tag=v.getId();
toSearchActivity();
打破
}
}
};

注意:关于如何实现View.OnClickListener,我已经尝试了各种可能的方法,但仍然无法单击新添加的TextView。忘记我代码中的按钮吧,它并不重要。非常感谢你的帮助

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

你可以这样写:

allTextView[countTv].setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
             // Code here executes on main thread after user presses button
         }
     });
你可以用它来做

 textGreen[i].setOnClickListener(ClickListener);