У меня есть просмотр списка в моей деятельности, и когда я нажимаю на кнопку, открывается диалог следующим образом:
private void openDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(FriendActivity.this);
builder.setTitle("Add friend");
builder.setMessage("Add the name and the phone number for your friend.");
LayoutInflater fi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = fi.inflate(R.layout.friend_dialog, null);
final EditText name = (EditText) v.findViewById(R.id.edit1);
final EditText number = (EditText) v.findViewById(R.id.edit2);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String namee = name.getText().toString().trim();
String numberr = number.getText().toString().trim();
db.insertFriend(namee, numberr);
//updateAdapter();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
});
builder.setView(v);
builder.show();
}
Хорошо, это работает!
Проблема заключается в том, что когда я нажимаю на EditText, появляется клавиатура, но когда я нажимаю кнопку назад, чтобы отключить ее, или даже нажимаю «OK», чтобы добавить ее, элементы списка всегда дублируются. Я не могу понять, почему? Кто-нибудь знает эту проблему?
Спасибо.
UPDATE:
Кажется, проблема в моем listAdapter = / когда я прокручиваю текст вверх или вниз по какой-то причине, вот мой код:
class ListAdapter extends ArrayAdapter<Friend>{
private ImageView img;
private TextView name, number;
private Context context;
public ListAdapter(Context context, int textViewResourceId, List<Friend> objects) {
super(context, textViewResourceId, objects);
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
LayoutInflater vi;
if(v == null){
vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Friend item = getItem(position);
name = (TextView) v.findViewById(R.id.name);
number = (TextView) v.findViewById(R.id.number);
name.append(item.getName());
number.append(item.getNumber());
return v;
}
}