Ich möchte als AutoCompleteTextview arbeiten. Aber ich verwende keine Auto-Volltextansicht in meinem Projekt. Ich habe edit Text verwendet und es den Wert für das Sortieren des Wertes des Adapters mit den Werten des Adapters Ich erstelle eine dynamische Schaltfläche. Aber eigentlich möchte ich dynamisch erstellten Button löschen. Wenn ein Benutzer in diesem Fall einen neuen Wert in den Bearbeitungstext eingibt, sortiert er einen neuen Wert im Adapter entsprechend der Schaltfläche, die erstellt werden soll. Mein Problem ist jedoch, dass die dynamisch erstellte Schaltfläche nicht gelöscht wird, wenn ein Benutzer neuen Text in die Bearbeitungsansicht eingibt. Es muss aussehen wie folgt aus:Wie kann ich hinzufügen und Layout pragmatisch in Android entfernen?
if (!s.equals("")) {
final String query = s.toString().trim();
filteredTags.clear();
((ViewManager) btnTag.getParent()).removeView(btnTag);
for (int i = 0; i < TagArray.size(); i++) {
final String tagName = TagArray.get(i).gettagName();
if (tagName.contains(query)) {
filteredTags.add(TagArray.get(i));
}
}
count1 = filteredTags.size();
layout = (LinearLayout) dialog.getCustomView().findViewById(R.id.layoutTags);
layout.setOrientation(LinearLayout.VERTICAL); //Can also be done in xml by android:orientation="vertical"
layout.setWeightSum(1);
float rowneed = ((float) count1/5);
k = 0;
for (int i = 0; i < ceil(rowneed); i++) {
row1 = new LinearLayout(getContext());
row1.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
/* layout.setVisibility(View.VISIBLE);
row.setVisibility(View.VISIBLE);*/
for (int j = 0; j < 5; j++) {
btnTag = new Button(getContext());
btnTag.setHeight(15);
btnTag.setWidth(0);
btnTag.setMinimumWidth(155);
btnTag.setMinimumHeight(135);
mTagList1 = new ArrayList<>();
if (k < count1) {
btnTag.setText(filteredTags.get(k).gettagName());
btnTag.setId(k);
k++;
btnTag.setVisibility(View.VISIBLE);
} else {
btnTag.setVisibility(View.INVISIBLE);
}
Log.e("count", " " + k + " " + count1 + " " + ceil(rowneed) + " " + edtTag.getText().toString());
btnTag.setTextSize(7);
btnTag.setGravity(0);
row1.addView(btnTag);
}
layout.addView(row1);
}
for (int btnId = 0; btnId < filteredTags.size(); btnId++) {
btnTag = (Button) dialog.getCustomView().findViewById(btnId);
final int finalId1 = btnId;
btnTag.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
TagNameArray.add(new Tags(filteredTags.get(finalId1).gettagId(), filteredTags.get(finalId1).gettagName()));
// Log.e("button","Button clicked index = " + finalId +" "+ TagArray.get(finalId1).gettagName()+" "+TagNameArray.size());
}
});
}
}
denke ich, jemand Ihre Frage bereits anwered hat http://stackoverflow.com/questions/3995215/add-and-remove-views-in-android-dynamisch – Bethan