无法转换 getApplicationContext() Android

getApplicationContext() cannot be cast Android

我正在创建一个应用程序单例以在活动之间共享数据。

AppData(单例)

import android.app.Application;

public class AppData extends Application {

    private String data;
    public String getData(){ return this.data;}
    public void setData(String data){this.data = data; }

}

MainActivity

public class SectionListExampleActivity extends Activity {

    AppData appData;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.news_list_layout);

        appData = (AppData) getApplicationContext();  // error here

    }

错误:android.app.Application cannot be cast to com.example....AppData

您是否忘记在 Manifest.xml 中定义应用程序?

你需要这样的东西:

 <application
    android:name="package.AppName"
    ...
 </application>

您需要在清单中注册您的应用程序class并尝试

public class SectionListExampleActivity extends Activity {

    AppData appData;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.news_list_layout);

        appData = (AppData) getApplication();

    }
}