Was ich gerne hätte, ist, dass wenn der + Button neben einem Namen isClicked ist, der Kontakt zu einer Liste AnruflisteDemandAccepted hinzugefügt wird.Wie bekomme ich eine Schaltfläche in einer ListView, die in einen alertDialog eingebettet ist?
Zuerst habe ich ein einfaches Layout mit einem Listview, dann ich Elemente in die Listview hinzugefügt, um eine Arrayadapter (ein Image mit einem Textview) verwendet wird.
Hier ist der Code in der Aktivität, der startet, wenn auf eine Schaltfläche geklickt wird.
public void displayContact() {
listeDemandAccepted = new ArrayList<Contact>();
if (listeDemand.size() != 0) {
final AlertDialog.Builder builderSingle = new AlertDialog.Builder(ContactListActivity.this);
final View v1 = (LinearLayout)getLayoutInflater().inflate(R.layout.liste_add_accepted_view, null);
final ContactRequestAdapter arrayRequestAdapter = new ContactRequestAdapter(ContactListActivity.this, listeDemand);
builderSingle.setIcon(R.drawable.user_groupe);
builderSingle.setTitle("Updating list");
builderSingle.setCancelable(true);
builderSingle.setView(v1);
TextView textView = (TextView)v1.findViewById(R.id.name_liste);
textView.setText("New demand by :");
ListView listView = (ListView)v1.findViewById(R.id.liste_demand_add);
listView.setAdapter(arrayRequestAdapter);
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Contact contact = arrayRequestAdapter.getItem(which);
listeDemandAccepted.add(contact);
}
};
builderSingle.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(builderSingle.getContext(), "Updating", Toast.LENGTH_LONG).show();
ArrayList<Contact> listeAll = listeAccepted;
listeAll.addAll(listeDemandAccepted);
listeContact.addAll(listeAll);
}
});
builderSingle.show();
}
}
Ich habe mehrere Methoden ausprobiert, aber bisher nicht gelungen. Und nichts geschieht nach der Anweisung: listeDemandAccepted.add(contact);
Hier ist der contactRequestAdapter Code ist (dass ich vergessen hatte):
public class ContactRequestAdapter extends ArrayAdapter<Contact> {
public ContactRequestAdapter(Context ctxt, ArrayList<Contact> contacts) {
super(ctxt,0,contacts);
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
Contact contact = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.liste_demand_adapter, parent, false);
}
// Lookup view for data population
TextView checkBox = (TextView) convertView.findViewById(R.id.accept_user_checkbox);
// Populate the data into the template view using the data object
checkBox.setText(contact.getName());
// Return the completed view to render on screen
return convertView;
}
} `
Haben Sie eine Idee, wie mir zu helfen?
Danke,
Das habe ich ausprobiert, wusste aber nicht, wie man den Plus-Button erreicht! – Hinko
@Hinko Android-Design-Prinzip entmutigt UI, die eine wiederholte Aktion enthalten, wie die, die Sie definiert haben - die Liste muss nicht die + Schaltfläche in jedem Listenelement haben - es könnte nur eine Liste sein und auf einen davon könnte es hinzufügen Ihr Geschäftsmodell - das ist nur ein Teil meines Vorschlags. – takrishna