Android.app.Application无法转换为

时间:2017-05-02 16:13:07

标签: android global-variables

尽管我遵循了一些StackOverflow的提示,但我无法摆脱这个错误:

Android.app.Application无法转换为com.dostalgia.airshootingrogatti.GlobalClass

我在清单文件中插入了GlobalClass,正如S.O。

中已经说过的那样

这是全球类代码:

public class GlobalClass extends AppCompatActivity {


    private int StatoContatore1;


    public int getStatoContatore1() {
        return StatoContatore1;
    }

    public void setStatoContatore1(int statoContatore1) {
        StatoContatore1 = statoContatore1;
    }
}

这是调用并生成错误的活动(不是主要的)

package com.dostalgia.airshootingrogatti;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class Postazione1 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_postazione1);

        final GlobalClass globalVariable = (GlobalClass) getApplicationContext();


    }
}

这是我的主要文件

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

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Postazione1"></activity>
        <activity android:name=".GlobalClass"></activity>

    </application>

</manifest>

我的目标是在不同的活动中使用和管理全局变量!

感谢您的回复!

1 个答案:

答案 0 :(得分:2)

  

我的目标是在不同的活动中使用和管理全局变量!

欢迎小心使用static字段。这不需要您尝试创建自定义Application子类,因为您似乎正在尝试这样做。

话虽如此,如果你真的想做我认为你想做的事情:

第1步:GlobalClass延长android.app.Application,而非AppCompatActivity

步骤2:删除<activity>

清单中的GlobalClass元素

步骤3:向清单中的android:name元素添加<application>属性,指向您的GlobalClass类(例如android:name="com.dostalgia.airshootingrogatti.GlobalClass"