2017-01-19 3 views
-1

У меня есть класс, который расширяет активность. Когда я пытаюсь получить доступ к контексту из метода 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();  
    } 
} 
+0

Ваш Context ваша активность, поэтому ссылаться на него вам нужно это ключевое слово – firegloves

+0

@firegloves Я пытался использовать это, не работает – Sanj

+0

Post StackTrace за исключением – Krish

ответ

0

Сделайте свой myHandler класс не static.

 Смежные вопросы

  • Нет связанных вопросов^_^