0
我一直在掙扎了一會兒,尋找任何提示如何進行。我試圖創建一個具有添加按鈕,這將創建一個新的TextView和點擊TextView的時候,你就必須刪除它的選項片段。在Android Studio中添加和刪除動態列表中的文字視圖?
添加textviews工作正常。問題在於爲每個文本視圖設置偵聽器的foreach循環,並添加了刪除它們的選項。這迫使我聲明當前的參數是最終的,否則刪除將不起作用。但是,如果我做的聲明它最後的話,我不能添加任何新textviews到列表中,所以他們不會有聽衆。
因此,如果任何人都可以給我某種暗示,這將非常感激。
這裏的列表和添加的部分。
//Variables
List<TextView> TextViews = new ArrayList<TextView>();
@Override
//Put button functionality here
public void onClick(View v) {
final LinearLayout myLayout = (LinearLayout) view.findViewById(R.id.linearlayout);
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Title");
// Set up the input/
final EditText input = new EditText(getContext());
input.setInputType(InputType.TYPE_CLASS_TEXT);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
notesIndex = new Integer(notesIndex + 1);
noteText = input.getText().toString();
TextView a = new TextView(view.getContext());
a.setText(noteText);
a.setHeight(150);
a.setGravity(Gravity.CENTER);
myLayout.addView(a);
TextViews.add(a);
noteTexts.add(noteText);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
這裏是foreach循環,設置了聽衆對每個TextView的。它們都在OnCreateView中調用。
for (final TextView current : TextViews) {
current.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(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(current);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}
});
}