Добавление контекстного меню в подпредставление (текстовое представление) SimpleCursorAdapter onClick

Я создал список с помощью SimpleCursorAdapter, каждая строка содержит несколько представлений (4 текстовых представления), я хочу добавить контекстное меню в одно текстовое представление при нажатии.

Я добавил контекстное меню в одно из текстовых представлений, но при нажатии на текстовое представление оно всегда дает данные последней строки (данные текстового представления последней строки).

Как я могу решить эту проблему, любая помощь очень ценится.

Ниже мой код:

В приведенном ниже коде я устанавливаю прослушиватель OnClick для просмотра текста, когда пользователь нажимает на текст, который я регистрирую для контекстного меню.

public View getView(int position, View convertView, ViewGroup parent) {  address = (TextView) row.findViewById(R.id.host_address);
                     address = (TextView) row.findViewById(R.id.host_address);
                    address.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {                        
                            registerForContextMenu(address);
                            openContextMenu(address);
                            unregisterForContextMenu(address);
                        }
                    }); }

Контекстное меню:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);

        menu.setHeaderTitle(address.getText());
        menu.add(0, OPEN_MAP, 0, "Open in maps");
        menu.add(0, COPY_ADDRESS, 1, "Copy");
    }

Примечание. **В приведенном выше коде **address.getText() всегда возвращает адрес последней строки.


person Joe    schedule 22.08.2016    source источник
comment
Пожалуйста, опубликуйте код, связанный с вышеуказанной функциональностью.   -  person Ramesh R    schedule 22.08.2016
comment
без ничего не может быть!   -  person Sohail Zahid    schedule 22.08.2016
comment
@RameshR добавил код.   -  person Joe    schedule 22.08.2016
comment
вы назначаете текстовое представление для адреса внутри метода getView(), который содержит ссылки на текстовое представление самого нижнего элемента списка, поскольку это последнее представление, которое выложено.   -  person Ramesh R    schedule 22.08.2016
comment
Я ваш Райт, но как я могу решить эту проблему .. Любая идея?   -  person Joe    schedule 22.08.2016


Ответы (1)


Панель инструментов можно использовать как ActionBar или отдельно. В автономном режиме вы не устанавливаете панель инструментов в качестве своего действия. bar, чтобы вы могли использовать его как простое представление, размещать его там, где хотите, имея над ним контроль.

В автономном режиме вам необходимо вручную заполнить панель инструментов содержимым/действиями. Например, если вы хотите, чтобы он отображал действия, вам нужно добавить в него меню.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.blah);

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);

    // Set an OnMenuItemClickListener to handle menu item clicks
    toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener(){
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            // Handle the menu item
            return true;
        }
    });

    // Inflate a menu to be displayed in the toolbar
    toolbar.inflateMenu(R.menu.your_toolbar_menu);
}
person Nicolás Patarino    schedule 22.08.2016
comment
Это не то, что я искал, пожалуйста, проверьте мое обновление. - person Joe; 22.08.2016