Как я могу включить editText из всплывающего меню?

У меня есть listView из 3 editText, когда я отображаю данные в этом editText, я устанавливаю editText на отключенный, после чего я создаю всплывающее меню, в котором у меня есть элемент редактирования для изменения данных, поэтому, когда я нажимаю на него, я включаю editText. Я перепробовал все решения, касающиеся включения / выключения редактирования текста. Но это не работает.:

Включить EditTEXT

Включить EditText 2

Мой экран lisTview:

Источник:

    public View getView(int position, View convertView, final ViewGroup parent) {

    final int pos = position;

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.feed_item, null);

    name = (EditText) convertView.findViewById(R.id.name_book_display);
    statusMsg = (EditText) convertView.findViewById(R.id.desc_display);
    prix = (EditText) convertView.findViewById(R.id.prix_display);

    disableEditText(name);
    disableEditText(statusMsg);
    disableEditText(prix);



      popupMenu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            IconizedMenu popup = new IconizedMenu(parent.getContext(), view);
            MenuInflater inflater = popup.getMenuInflater();
            inflater.inflate(R.menu.poupup_menu, popup.getMenu());

            popup.setOnMenuItemClickListener(new IconizedMenu.OnMenuItemClickListener() {
                                                 @Override
                                                 public boolean onMenuItemClick(MenuItem item) {
                                                     switch (item.getItemId()) {
                                                         case R.id.update_book:
                                                              enableEditText(name);
                                                             enableEditText(statusMsg);
                                                             enableEditText(prix);
                                                             updateBtn.setVisibility(View.VISIBLE);


                                                             return true;
                                                         case R.id.add_book_to_favoris:
                                                             return true;
                                                         case R.id.delete_book:
                                                             return true;

                                                         default:
                                                             return false;
                                                     }
                                                 }
                                             }


            );

            popup.show();


        }
    });




      return convertView;
}


     private void disableEditText(EditText editText) {
    editText.setFocusable(false);
    editText.setEnabled(false);
    editText.setCursorVisible(false);
    editText.setKeyListener(null);
    editText.setBackgroundColor(Color.TRANSPARENT);
}


private void enableEditText(EditText editText) {
    editText.setFocusable(true);
    editText.setEnabled(true);
    editText.setCursorVisible(true);
    editText.setKeyListener(listener);
}

Обновление экрана debeug:

2 ответа

editText.setFocusable(true);
editText.setEnabled(true);
editText.setCursorVisible(true);
editText.setKeyListener(editText.getKeyListener());

Использование editText.setFocusableInTouchMode(true) вместо editText.setFocusable(true),

Обновите свой enableEditText() метод, как показано ниже:

private void enableEditText(EditText editText) {
    editText.setEnabled(true);
    editText.setCursorVisible(true);
    editText.setFocusableInTouchMode(true);
    editText.setInputType(InputType.TYPE_CLASS_TEXT);
}
Другие вопросы по тегам