Intereting Posts
: ВНИМАНИЕ: android / base / files / IniFile.cpp: 158: Не удалось обработать файл .ini. C: \ Users \ User_Name \ .android \ emu-update-last-check.ini для чтения. Ошибка: open failed: ENOENT (Нет такого файла или каталога) Как отобразить изображение из папки с данными в Android? Возможно ли получить данные из форм HTML в андроид при использовании webView? Что такое пространство имен, действие мыла и URL-адрес должны быть для моего приложения Android, обращающегося к веб-сервису wcf? Как найти местоположение пользователя с помощью ячеистой камеры? Что такое MergeRootFrame в FrameLayout? Как получить имя месяца с использованием текущей даты в качестве входа в функцию Почему нам нужно искать обновления для мобильного приложения? WebView Rendering Issue в Android KitKat Android-maven-plugin и фильтрация ресурсов Получение допустимого указателя JNIEnv Как убить все запущенные приложения в Android? Как настроить пользовательские пространства имен в файле макета в студии Android? Как программно писать в Google Sheet из приложения для Android

Android, намерение не работает?

Это мой код. Это очень просто, но когда я нажимаю кнопку «button1», ничего не происходит. Что я сделал не так?

public class TestTab extends Activity { Button button1; Intent i; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) findViewById(R.id.btnScore); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "On Click Event", 5000).show(); //i = new Intent(TestTab.this, AndroidTab.class); //startActivity(i); } }); }} 

second–

 package com.example.picturegame2; import android.app.TabActivity; public class AndroidTab extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.tabzz); TabHost tabHost = getTabHost(); TabSpec localspec = tabHost.newTabSpec("Local"); localspec.setIndicator("Local", getResources().getDrawable(R.drawable.friend)); Intent localIntent = new Intent(this, local.class); localspec.setContent(localIntent); TabSpec worldwidespec = tabHost.newTabSpec("worldwide"); worldwidespec.setIndicator("Worldwide", getResources().getDrawable(R.drawable.worldwide)); Intent worldwideIntent = new Intent(this, worldwide.class); worldwidespec.setContent(worldwideIntent); tabHost.addTab(worldwidespec); tabHost.addTab(localspec); } } 

в третьих–

 package="com.example.picturegame2" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".local"/> <activity android:name=".AndroidTab"/> <activity android:name=".TestTab"/> <activity android:name=".tabzz"/> <activity android:name=".worldwide"/> </application> 

layout–

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:layout_width="250dp" android:layout_height="100dp" android:text="Start New Game" android:id="@+id/BtnGame" android:textSize="35dp" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" /> <ListView android:id="@+id/LsOpenGames" android:layout_width="250dp" android:layout_height="210dp" android:layout_centerHorizontal="true" android:layout_marginTop="130dp" ></ListView> <Button android:layout_width="120dp" android:layout_height="40dp" android:text="Profile" android:id="@+id/btnProfile" android:textSize="15dp" android:layout_marginLeft="40dp" android:layout_marginTop="375dp" /> <Button android:layout_width="120dp" android:layout_height="40dp" android:text="Score" android:id="@+id/btnScore" android:textSize="15dp" android:layout_marginLeft="170dp" android:layout_marginTop="375dp" /> </RelativeLayout> 

Новый Logcat: 11-29 12: 15: 39.552: D / gralloc_goldfish (613): обнаружен эмулятор без эмуляции графического процессора. 11-29 12: 15: 40.062: I / Хореограф (613): пропустил 51 фрейм! Приложение может делать слишком много работы над своей основной нитью. 11-29 12: 16: 08.902: I / Хореограф (613): пропустили 30 кадров! Приложение может делать слишком много работы над своей основной нитью.

Вы должны удалить глобально объявленную переменную Intent, как это,

  Button button1; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) findViewById(R.id.btnScore); button1.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(TestTab.this, AndroidTab.class); startActivity(i); } }); } 

Или попробуйте это,

  Button button1; Intent i; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) findViewById(R.id.btnScore); button1.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { i = new Intent(TestTab.this, AndroidTab.class); startActivity(i); } }); } 

Ваша startActivity(i) могла ссылаться на глобально объявленную переменную Intent, которую вы забыли инициализировать и создать объект Intent локально с тем же именем «i», что и объявленный глобально.

Если приведенные выше идеи вам не помогут, то, как предложил пользователь Yajneshwar Mandal, вам нужно попробовать. Или поместите лог внутри ClickListener, чтобы узнать, попадает ли элемент управления в него.

 public class TestTab extends Activity { Button button1; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) findViewById(R.id.btnScore); button1.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent i = new Intent(TestTab.this, AndroidTab.class); //i.setAction(Intent.ACTION_CALL_BUTTON); startActivity(i); } }); } } 

Могут быть две проблемы

  1. Вы объявляете свои намерения дважды, сначала глобально, а затем локально. Система может ссылаться на глобальное отклонение.

  2. Во-вторых, вы использовали

     button1.setOnCLickListener(new Button.OnClickListener() ... ); 

Здесь вы должны использовать,

 button1.setOnClickListener(new View.OnClickListener()