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