当前位置: 代码迷 >> java >> getApplicationContext()无法强制转换为Android
  详细解决方案

getApplicationContext()无法强制转换为Android

热度:112   发布时间:2023-07-17 20:21:18.0

我正在创建一个Application Singleton,用于在活动之间共享数据。

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; }

}

主要活动

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>

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

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();

    }
}
  相关解决方案