Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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 在Android Studio中从动态列表中添加和删除文本视图?_Java_Android_Android Studio - Fatal编程技术网

Java 在Android Studio中从动态列表中添加和删除文本视图?

Java 在Android Studio中从动态列表中添加和删除文本视图?,java,android,android-studio,Java,Android,Android Studio,我已经为此挣扎了一段时间,想知道如何继续。我正在尝试创建一个带有add按钮的片段,它将创建一个新的textview,当单击textview时,您可以选择删除它 添加文本视图效果很好。问题出在foreach循环中,该循环为每个textview设置侦听器,并添加删除它们的选项。它迫使我声明当前参数final,否则删除将无法工作。但是如果我宣布它为final,那么我就不能向列表中添加任何新的文本视图,因此它们就不会有侦听器 因此,如果有人能给我一些提示,我将不胜感激 这是列表和添加部分 //变量 列

我已经为此挣扎了一段时间,想知道如何继续。我正在尝试创建一个带有add按钮的片段,它将创建一个新的textview,当单击textview时,您可以选择删除它

添加文本视图效果很好。问题出在foreach循环中,该循环为每个textview设置侦听器,并添加删除它们的选项。它迫使我声明当前参数final,否则删除将无法工作。但是如果我宣布它为final,那么我就不能向列表中添加任何新的文本视图,因此它们就不会有侦听器

因此,如果有人能给我一些提示,我将不胜感激

这是列表和添加部分

//变量
列表文本视图=新建ArrayList();
@凌驾
//把按钮功能放在这里
公共void onClick(视图v){
最终LinearLayout myLayout=(LinearLayout)视图。findViewById(R.id.LinearLayout);
AlertDialog.Builder=新建AlertDialog.Builder(getContext());
建造商名称(“名称”);
//设置输入/
最终编辑文本输入=新编辑文本(getContext());
input.setInputType(InputType.TYPE\u CLASS\u TEXT);
builder.setView(输入);
//设置按钮
setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
notesIndex=新整数(notesIndex+1);
noteText=input.getText().toString();
TextView a=新的TextView(view.getContext());
a、 setText(noteText);
a、 设置高度(150);
a、 设置重力(重心);
myLayout.addView(a);
文本视图。添加(a);
noteTexts.add(noteText);
}
});
setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.cancel();
}
});
builder.show();
         // Set up the buttons


         builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                           addViewToLayout();
                        }
                    });

        void addViewToLayout(){
    notesIndex = new Integer(notesIndex + 1);
                        noteText = input.getText().toString(); 
         TextView a = new TextView(view.getContext());
                              a.setOnClickListener(new View.OnClickListener() {
                @Override
            public void onClick(View v) {
                       showAlertToDelete(v)
                }
    });
                        a.setText(noteText);
                        a.setHeight(150);
                        a.setGravity(Gravity.CENTER);
                        myLayout.addView(a);
                        TextViews.add(a);
                        noteTexts.add(noteText);

        }

void showAlertToDelete(View v){
    AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
                builder.setTitle("Delete?");

                // Set up the buttons
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        myLayout.removeView(v);
                    }
                });
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });

                builder.show();
}