用按钮不起作用打开另一个活动

时间:2015-03-26 00:47:34

标签: android android-activity

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

下面我将发布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>

1 个答案:

答案 0 :(得分:0)

按如下方式更改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 <intent-filter>部分删除此<activity> ...

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

...并从JokeOfTheDay <activity>部分摆脱这一个......

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

基本上,请不要使用应用Context来启动ActivityActivity没有必要,因为它有自己的Context),并且整体,使用明确的Intents来启动Activities,而不是在清单中定义<intent-filter>部分。