【问题标题】:open another activity with a button not working打开另一个按钮不起作用的活动
【发布时间】:2015-03-26 00:47:34
【问题描述】:

因此,当此代码运行时,我没有收到任何错误。它正确显示按钮和所有内容,但是当我单击按钮时没有任何反应(它只是单击并单击并单击没有任何反应)。

下面我将发布 xml 清单,以便您可以看到我已经完美地完成了所有操作,但不知何故它并没有按照我的要求做。

package com.Tripp.thebasics;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Menu extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jokecatagories);

        //setting up the button references
        Button jokeD = (Button) findViewById(R.id.jokeoftheday);
        Button jokeC = (Button) findViewById(R.id.jokecatagories);

        jokeD.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(getApplicationContext(),JokeOfTheDay.class);
                startActivity(i);
            }
        });

        jokeC.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent s = new Intent(".JokeCatagories");
                startActivity(s);
            }
        });
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
    }
}

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.Tripp.thebasics"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 
        >
        <activity
            android:name=".Main"
            android:label="@string/app_name" 
            android:screenOrientation="portrait"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Menu"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MENU" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".com.Tripp.thebasics.JokeCatagories"
            android:label="@string/app_name" >
            <intent-filter>
         <action android:name="android.intent.action.JOKECATAGORIES"     />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Sweet"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.SWEET" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".com.Tripp.thebasics.JokeOfTheDay"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.JOKEOFTHEDAY" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

【问题讨论】:

  • 请不要大喊大叫(使用全大写),因为这在本网站上处理得不好,并且可能导致您的问题获得反对票或接近票。

标签: android android-activity


【解决方案1】:

如下更改您的OnClickListeners...

jokeD.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i = new Intent(Menu.this, JokeOfTheDay.class);
        startActivity(i);
    }
});

jokeC.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent s = new Intent(Menu.this, JokeCatagories.class);
        startActivity(s);
    }
});

然后从清单中的 JokeCategories &lt;activity&gt; 部分中删除此 &lt;intent-filter&gt;...

<intent-filter>
    <action android:name="android.intent.action.JOKECATAGORIES"     />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

...从 JokeOfTheDay &lt;activity&gt; 部分中删除这个...

<intent-filter>
    <action android:name="android.intent.action.JOKEOFTHEDAY" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

基本上,不要使用应用程序Context 来启动Activity(从Activity 开始没有必要,因为它有自己的Context),总的来说,使用显式Intents 来开始 Activities 而不是在清单中定义 &lt;intent-filter&gt; 部分。

【讨论】:

  • 我在设备 'emulator-5554' 上安装 thebasics.apk 失败:超时
  • 嗯,这与我建议的任何更改无关。
  • 好的,我使用 sdk 版本 22 修复了它,但活动仍然没有按照它的程序执行我可以点击但没有任何反应
  • 这可能与 EGL_emulation eglSurfaceAttribute 未实现有关吗?并且未能设置 EGL_SWAP_BEHAVIOR
  • 从清单的.com.Tripp.thebasics.JokeCatagories 中删除前面的.。同时从.com.Tripp.thebasics.JokeOfTheDay中删除前面的.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
相关资源
最近更新 更多