Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
14 / 9 / 13
Регистрация: 10.09.2012
Сообщений: 1,118

Не работает контекстное меню

29.06.2023, 13:42. Показов 792. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Учусь. AS Arctic Fox 2020.3.1. Делаю меню по этому урокуl Не хочет работать. Подозреваю что что не так с onCreateContextMenu, так как только вызов этого метода отличается. У меня он такой
Java
1
2
3
4
5
6
7
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenu.ContextMenuInfo menuInfo) {
 
 
        Log.d(TAG, "Работает");
}
В логах тишина.
Подскажите что нибудь).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.06.2023, 13:42
Ответы с готовыми решениями:

Контекстное меню не работает
Доброго времени суток. Я отбираю записи из базы и формирую список в ListView, насаживая на каждый элемент событие onClick, чтобы...

ListView и контекстное меню
Подскажите как сделать так, чтобы контекстное меню знало пункт listview из которого оно было вызвано? Пытался сохранить пункт в...

Контекстное меню в ListView
Здравствуйте,выложите пожалуйста рабочий код контекстного меню для listview и напишите пожалуйста куда вставлять этот код.

2
22 / 14 / 8
Регистрация: 30.03.2020
Сообщений: 86
29.06.2023, 17:57
Цитата Сообщение от юрьич Посмотреть сообщение
Подскажите что нибудь).
ну как вариант
Java
1
2
3
4
5
6
7
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
}
может просто создать проект с менюшкой и посмотреть как всё работает ?)
а ещё лучше скинуть весь код
0
14 / 9 / 13
Регистрация: 10.09.2012
Сообщений: 1,118
30.06.2023, 11:31  [ТС]
Так тоже пробовал. Примеры разные применял. Не хочет. Простое меню работает.А это нет. То есть не работает это
Java
1
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo)
а так
Java
1
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo)
ругается на отсутствие класса

Добавлено через 1 минуту
Цитата Сообщение от Dmitriyz Посмотреть сообщение
ещё лучше скинуть весь код
Весь код в уроке, что ссылку скинул.

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package com.disign.menu;
 
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
 
import androidx.appcompat.app.AppCompatActivity;
 
public class MainActivity extends AppCompatActivity {
 
    final int MENU_COLOR_RED = 1;
    final int MENU_COLOR_GREEN = 2;
    final int MENU_COLOR_BLUE = 3;
 
    final int MENU_SIZE_22 = 4;
    final int MENU_SIZE_26 = 5;
    final int MENU_SIZE_30 = 6;
 
    TextView tvColor, tvSize;
 
    private static final String TAG = "myLogs";
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tvColor = (TextView) findViewById(R.id.tvColor);
        tvSize = (TextView) findViewById(R.id.tvSize);
 
        // для tvColor и tvSize необходимо создавать контекстное меню
        registerForContextMenu(tvColor);
        registerForContextMenu(tvSize);
 
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);
        return true;
 
    }
 
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        //super.onCreateContextMenu(menu, v, menuInfo);
 
        Log.d(TAG, "Не Работает");
        // TODO Auto-generated method stub
        switch (v.getId()) {
            case R.id.tvColor:
                menu.add(0, MENU_COLOR_RED, 0, "Red");
                menu.add(0, MENU_COLOR_GREEN, 0, "Green");
                menu.add(0, MENU_COLOR_BLUE, 0, "Blue");
                break;
            case R.id.tvSize:
                menu.add(0, MENU_SIZE_22, 0, "22");
                menu.add(0, MENU_SIZE_26, 0, "26");
                menu.add(0, MENU_SIZE_30, 0, "30");
                break;
        }
    }
 
    @Override
    public boolean onContextItemSelected(MenuItem item) {
 
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
            // пункты меню для tvColor
            case MENU_COLOR_RED:
                tvColor.setTextColor(Color.RED);
                tvColor.setText("Text color = red");
                break;
            case MENU_COLOR_GREEN:
                tvColor.setTextColor(Color.GREEN);
                tvColor.setText("Text color = green");
                break;
            case MENU_COLOR_BLUE:
                tvColor.setTextColor(Color.BLUE);
                tvColor.setText("Text color = blue");
                break;
            // пункты меню для tvSize
            case MENU_SIZE_22:
                tvSize.setTextSize(22);
                tvSize.setText("Text size = 22");
                break;
            case MENU_SIZE_26:
                tvSize.setTextSize(26);
                tvSize.setText("Text size = 26");
                break;
            case MENU_SIZE_30:
                tvSize.setTextSize(30);
                tvSize.setText("Text size = 30");
                break;
        }
        return super.onContextItemSelected(item);
    }
}


Добавлено через 16 минут
Нашёл решение. После регистрации контекстного меню нужно событие вызова openContextMenu (View v); У меня так будет

Java
1
2
3
4
5
6
7
8
        registerForContextMenu(tvColor);
        registerForContextMenu(tvSize);
        tvColor.setOnClickListener(v -> {
            openContextMenu(tvColor);
        });
        tvSize.setOnClickListener(v -> {
            openContextMenu(tvSize);
        });
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.06.2023, 11:31
Помогаю со студенческими работами здесь

Контекстное меню RecyclerView
Здравствуйте! Возникла задача создать контекстное меню для recyclerView, при выборе элемента меню должно открыться другое Activity. ...

Контекстное меню на ExpandableListView
Здравствуйте! подскажите как правильно определить пункт ExpandableListView (группа или элемент группы) на котором было вызвано...

Контекстное меню вместо опционального
Здравствуйте! Подскажите, возможно ли сделать так, чтобы при нажатии кнопки меню на телефоне, вместо опционального меню открывалось...

При долгом нажатии вывести контекстное меню
Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы при долгом нажатии на адресную строку, выводилось контекстное меню. Браузер...

Как создать контекстное меню. Например нажимая на richTextBox правой кнопкой мыши, мне бы предоставлялось контекстное меню
Как создать контекстное меню. Например нажимая на richTextBox правой кнопкой мыши, мне бы предоставлялось контекстное меню???


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru