У меня есть класс, который расширяет активность. Когда я пытаюсь получить доступ к контексту из метода onCreate(), он печатается, но когда я сохраняю его в контексте переменной и пытаюсь получить к нему доступ из функции committext()
, как показано ниже, он печатает ноль. Я также попытался использовать «this» и getBaseContext()
непосредственно из функции committext()
, поскольку он является частью одного и того же класса. Я получаю исключение из null-указателя. Пожалуйста, помогите мне разобраться, что происходит.Как получить контекст из функции класса, который расширяет Activity в android?
public class MainKeyboardActionListener extends Activity implements KeyboardView.OnKeyboardActionListener, View.OnTouchListener {
private Context context;
public static boolean active = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mode_keyboard, false);
context=getBaseContext();
System.out.println("contexxtt1"+context);
}
@Override
public void onStart() {
super.onStart();
active = true;
}
@Override
protected void onResume() {
super.onResume();
}
private static class myHandler extends Handler {
}
;
public void setInputConnection(InputConnection ic) {
}
@Override
public void onKey(int arg0, int[] arg1) {
// TODO Auto-generated method stub
}
@Override
public void onPress(int keyCode) {
}
@Override
public void onRelease(int keyCode) {
commitText(String.valueOf(keyCode));
}
private void handleException(int keyCode) {
}
private void removeHalantMode() {
}
private void commitText(String text) {
if(active==true) {
System.out.println("contexxtt"+context);
}
}
@Override
public void onText(CharSequence arg0) {
// TODO Auto-generated method stub
}
@Override
public void swipeDown() {
// TODO Auto-generated method stub
}
@Override
public void swipeLeft() {
// TODO Auto-generated method stub
}
@Override
public void swipeRight() {
// TODO Auto-generated method stub
}
@Override
public void swipeUp() {
// TODO Auto-generated method stub
}
@Override
protected void onPause() {
super.onPause();
}
@Override
public void onStop() {
super.onStop();
active = false;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
Ваш Context ваша активность, поэтому ссылаться на него вам нужно это ключевое слово – firegloves
@firegloves Я пытался использовать это, не работает – Sanj
Post StackTrace за исключением – Krish