Java 使用意图链接活动(Android初学者)

Java 使用意图链接活动(Android初学者),java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我开始学习Android,并一直在阅读“开始Android 4应用程序开发”。(以及下载相关源代码) <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string

我开始学习Android,并一直在阅读“开始Android 4应用程序开发”。(以及下载相关源代码)

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>
但是,;我一直在尝试创建一个非常简单的幻灯片,带有一个标签为“Gallery”的按钮,它将带我进入一个新的活动,为我的照片显示一个网格状的布局。但是,我的应用程序不这样做。当按下按钮时,它要么会使应用程序崩溃,要么会拒绝做任何事情

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>
清单

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>


如果您能提供任何帮助,我将不胜感激,我认为这是一个简单的东西,但看了三个小时后,我看不出它是什么。

您需要将Gallery活动添加到Android清单中

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>
<activity
    android:name=".Gallery"
    android:label="Gallery"></activity>

在清单中,您在意图过滤器中注册了查看器活动,但未声明为广播接收器

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>
第二个事件如果它是广播接收器,它将永远不会启动,因为您不通过调用startActivity发送任何广播

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>
我认为你想要达到的是:

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>
请试试这个:

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="Viwer"
        android:name=".Viwer" >
        <intent-filter >
            <action android:name="com.example.viwer.Gallery" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

</manifest>
 ebutton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            Intent intent =  new Intent(MainActivity.this,Viwer.calss )
            startActivity(intent);
            }

    });

你能在这里发布Logcat输出吗?你画廊活动的名称是什么?是Viwer还是Gallery?项目名为Viwer,活动名为Gallery.java抱歉,在复制时遇到问题,但这里是最后几行。我想我找到问题了。原因:java.lang.ClassNotFoundException:在java.lang.ClassLoader.loadClass的dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)的路径:DexPathList[[zip文件”/data/app/app/com.example.viwer.apk],NativeLibraryDirectory=[/data/app-lib/com.example.viwer-1,/system/lib]]上找不到类“com.example.viwer.viwer”android.app.Instrumentation.newActivity(Instrumentation.java:1061)的java.lang.ClassLoader.loadClass(ClassLoader.java:497)感谢您的回复,但这仍然会导致强制关闭。编辑//我将Viewr替换为Gallery,它正在工作。非常感谢!在您的主要活动中尝试:
startActivity(新的意图(这个,Gallery.class);