Intereting Posts
Proguard вернулся с кодом ошибки 1. См. Консоль Android OnBackPressed в Xamarin Android Проблемы с работой SurfaceTexture с Android Videoplayer на MALI 400 Как взять первый элемент arrayList и просмотреть в текстовом виде Cursor.moveToNext без moveToFirst Управление навигационной панелью и обратной кнопкой панели инструментов от фрагмента до фрагмента в андроиде Возможно ли в Android найти find по String id? Android & libgdx – отключить размытую визуализацию Как я могу проверить из Android WebView, если страница «404 страница не найдена»? Откройте загруженный файл на Android N, используя FileProvider Нажатие на значок приложения не вызывает onOptionsItemSelected () Значение Android … типа java.lang.String не может быть преобразовано в JSONArray Android Soundpool Load (String path, int priority) Как создать автономный GO для Wifi Direct в Android с выделенной ssid и кодовой фразой? Glassware auth: android.accounts.OperationCanceledException «Совместное использование учетных данных не допускается: отмена».

Создание намерения в новом методе

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

У меня есть код:

private final View.OnClickListener btnClick = new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.about_box: Intent i = new Intent(this, About.class); startActivity(i); break; } } } 

Но намерение дает мне ошибку:

Конструктор Intent (новый View.OnClickListener () {}, класс) не определен

Любая идея об обходных решениях?

Благодарю.

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

 // your Activity public class MyActivity extends Activity { Context ctx = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ctx = getApplication(); } private final View.OnClickListener btnClick = new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.about_box: Intent i = new Intent(ctx, About.class); startActivity(i); break; } } } 

Изменить,

 Intent i = new Intent(this, About.class); 

чтобы,

 Intent i = new Intent(TheCurrentClassName.this, About.class); 

Измените линию намерения на: Intent intent = new Intent (ClassName.this, theNewClassName.class);

Цель требует контекста. Однако использование этого ярлыка в функции onClick не разрешено должным образом. Различные способы предоставления текущего контекста в анонимном внутреннем классе – использовать Context.this вместо этого. – Вместо этого используйте getApplicationContext (). – Явно использую имя класса MenuScreen.this. Вызовите функцию, объявленную на нужном уровне контекста.

Просто измените

 Intent i = new Intent(this, About.class); 

в

 Intent i = new Intent(Classname.this, About.class); 

Надеюсь, что это работает.