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>
我目前正在尝试创建一个全局变量 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>