Глобальная переменная Android, getApplicationContext с ClassCastException - PullRequest
0 голосов
/ 15 июня 2011

Следуя совету из вопроса и ответа о переполнении стека, я создаю класс (константу) и пытаюсь объявить и использовать его в качестве глобальной переменной, но его не удалось привести, не могу найти хорошего ответа для этой проблемы. Попытка определить либо «Константа» или «.Constant» в файле манифеста, ни одно из определений не работает.

Пожалуйста, помогите мне.

Constant con = ((Constant)getApplicationContext());  // failed to cast here
con.setClientid(Integer.parseInt(clientid));

import android.app.Application;

public class Constant extends Application {
    private int gClientid;
    public int getClientid() { return gClientid; }   
    public void setClientid(int cid) { gClientid = cid; }   
}

Manifest

<application android:name=".Constant" android:icon="@drawable/icon">

Ответы [ 4 ]

1 голос
/ 15 июня 2011

Правильный синтакс должен быть Constant con = (Constant) this.getApplication (); внутри вашей деятельности.

1 голос
/ 15 июня 2011
Constant con = (Constant)getApplication();  // failed to cast here
con.setClientid(Integer.parseInt(clientid));

import android.app.Application;

public class Constant extends Application {
    private int gClientid;
    public int getClientid() { return gClientid; }   
    public void setClientid(int cid) { gClientid = cid; }   
}
0 голосов
/ 19 января 2013

Я знаю, что отвечаю на старый пост, но только для людей, которые все еще получают подобную проблему.

Я думаю, что его проблема является частью

<application android:name=".Constant" android:icon="@drawable/icon">

Моя проблема решена путем включения целого конкретного пути к классу вместо ".Constant". ех. "com.example.Constant"

0 голосов
/ 15 июня 2011

Замените getApplicationContext () на getApplication (), и вы сможете использовать приложение, расширяющее класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...