MyApplication 无法分配给 Activity

MyApplication not assignable to Activity

我目前正在尝试创建一个全局变量 activity。

我已按照以下说明 (Android global variable) 来设置 Activity。

但是,当我尝试编辑 android:name 属性时,问题就来了。当我输入 application/activity 的名称时,错误消息说我无法扩展应用程序。有人可以解释为什么吗?

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.denny.protoype2">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android:name="Protoype2"
    android:allowBackup="true"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".Protoype2"
        android:label="@string/title_activity_global_var"
        android:theme="@style/AppTheme.NoActionBar">
    </activity>
</application>

和 Protoype2 activity:

package com.example.denny.protoype2;

import android.app.Application;


public class Protoype2 extends Application {
    private boolean StopTrue;

    public boolean getStopTrue() {
        return StopTrue;
    }

    public void setStopTrue (boolean StopTrue) {
        this.StopTrue = StopTrue;
    }

}

xml 是虚拟的,更像是应用程序布局或清单的信息 holder/skeleton,它们不能使用逻辑、实例对象或使用 getters/setter。

Application 和 Activity 是两个独立的 class。如果您要扩展应用程序 class,则不要在清单中声明与 Activity 相同的 class -

从清单中删除此代码 -

<activity
    android:name=".Protoype2"
    android:label="@string/title_activity_global_var"
    android:theme="@style/AppTheme.NoActionBar">
</activity>

"Protoype2" 是应用程序 class。而且您不能将应用程序 class 声明为 activity。你需要有一个 Activity class.

您发布的 link 非常深入地介绍了如何从 activity.

访问应用程序 class
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.denny.protoype2">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
android:name="Protoype2"
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
    android:name=".Protoype2"
    android:label="@string/title_activity_global_var"
    android:theme="@style/AppTheme.NoActionBar">
</activity>
</application>

替换为

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.denny.protoype2">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
android:name=".Protoype2"
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">

</application>