Greg Peckory
Greg Peckory

Reputation: 8068

getApplicationContext() cannot be cast Android

I am creating an Application Singleton for sharing data among activities.

AppData (Singleton)

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

    }

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

Upvotes: 1

Views: 1058

Answers (2)

kenilt
kenilt

Reputation: 56

You need to register your application class in manifest and try it

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

    }
}

Upvotes: 0

pez
pez

Reputation: 4235

Did you forget to define the application in Manifest.xml?

You need something like:

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

Upvotes: 7

Related Questions