Конфликт в Alert.Dialog - PullRequest
       5

Конфликт в Alert.Dialog

0 голосов
/ 12 октября 2011

У меня есть просмотр списка в моей деятельности, и когда я нажимаю на кнопку, открывается диалог следующим образом:

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;
    }
}

1 Ответ

1 голос
/ 12 октября 2011

Вы хотели позвонить в name.append и number.append?Я думаю, что name.setText и number.setText звучат более уместно.Методы добавления будут добавлять все больше и больше текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...