2012-05-18 3 views
0

Я пытаюсь обновить свой собственный ListViewAdapter;LayoutInflater NullPointerException

Edit:

Когда я нажимаю элемент в Listview он звонит экран GoruntuleActivity и создания OnCreate метод (я предполагаю, что он создает ..), а затем я называю метод GoruntuleActivity а layputInflater - это действие.

ListeleActivity.java

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View item, 
        int position, long id) { 

       onClickPosition = position; 

       final Intent intent = new Intent(ListeleActivity.this, 
         GoruntuleActivity.class); 
       startActivity(intent); 

       goruntuleNesnesi.isSetListRefresh(onClickPosition , issetlist); 
      } 
     }); 

и называет метод GoruntuleActivity.java

public void isSetListRefresh(int onClickPosition, ArrayList<String> issetlist) 
    { 
     issetlist.set(onClickPosition, "false"); 
     setRecentOrSeen(issetlist); 
     ListviewRefresh(); 
    } 

    public void ListviewRefresh() 
    { 
     LayoutInflater mLInflater = LayoutInflater.from(this); 

     ListViewAdapter adapter = new ListViewAdapter(
       getApplicationContext(), getKimdenList(), getKonuList(), getRecentOrSeen() , 
       mLInflater); 
     adapter.Remove(); 

    } 

И теперь это дает мне еще одно исключение ..

05-18 16:25:22.073: E/AndroidRuntime(807): FATAL EXCEPTION: main 
05-18 16:25:22.073: E/AndroidRuntime(807): java.lang.IllegalStateException: System services not available to Activities before onCreate() 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.app.Activity.getSystemService(Activity.java:3526) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.view.LayoutInflater.from(LayoutInflater.java:171) 
05-18 16:25:22.073: E/AndroidRuntime(807): at com.mobil.eposta.GoruntuleActivity.ListviewRefresh(GoruntuleActivity.java:160) 
05-18 16:25:22.073: E/AndroidRuntime(807): at com.mobil.eposta.GoruntuleActivity.isSetListRefresh(GoruntuleActivity.java:155) 
05-18 16:25:22.073: E/AndroidRuntime(807): at com.mobil.eposta.ListeleActivity$1.onItemClick(ListeleActivity.java:137) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.widget.ListView.performItemClick(ListView.java:3382) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.os.Handler.handleCallback(Handler.java:587) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.os.Handler.dispatchMessage(Handler.java:92) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.os.Looper.loop(Looper.java:123) 
05-18 16:25:22.073: E/AndroidRuntime(807): at android.app.ActivityThread.main(ActivityThread.java:4627) 
05-18 16:25:22.073: E/AndroidRuntime(807): at java.lang.reflect.Method.invokeNative(Native Method) 
05-18 16:25:22.073: E/AndroidRuntime(807): at java.lang.reflect.Method.invoke(Method.java:521) 
05-18 16:25:22.073: E/AndroidRuntime(807): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
05-18 16:25:22.073: E/AndroidRuntime(807): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
05-18 16:25:22.073: E/AndroidRuntime(807): at dalvik.system.NativeStart.main(Native Method) 
+0

Вы попробовали использовать накладной макет LayoutInflater = (LayoutInflater) mContext.getSystemService (LAYOUT_INFLATER_SERVICE) ;? –

+0

Я использовал его сейчас, и он не работал – Merve

+0

LayoutInflater.from (getApplicationContext())? – Blackbelt

ответ

2

Из журналов ошибок похоже, что getApplicationContext() возвращает значение null. Когда вы звоните goruntuleNesnesi.ListviewRefresh();? Это в onCreate (...)? Если это так, это может быть вашей проблемой, так как getApplicationContext(...) будет возвращать значение null до тех пор, пока не будет выполнена инициализация onCreate(...).

Редактировать: Я просмотрел трассировку стека немного больше, и похоже, что вы вызываете ListviewRefresh нажатием кнопки. Вы пытались использовать this вместо getApplicationContext (...)?

Edit 2: Попробуйте это:

ListViewAdapter adapter = new ListViewAdapter(this, getKimdenList(), getKonuList(), getRecentOrSeen() ,mLInflater); 

Хотя, я думаю, что это может страдают от тех же проблем, потому что активность не была нарисована на экране еще и не была инициализирована , вы не можете раздувать его. Попробуй, и мы пойдем оттуда.

+0

Вы правы! Я вызываю layoutinflater, прежде чем он не будет создан. И я пытаюсь вызвать layputinflater после oncreate goruntuleactivity, но он дал мне «настоящую ошибку». Я имею в виду перед вашим комментарием мое приложение, дающее исключение с оранжевым цветом и не сбой, но после oncreate и layoutinflater, вызывающего это краш: S Что мне делать? Я редактирую мою новую ошибку Logcat в моем вопросе – Merve

+0

Я пробовал это, и результат меня смутил: SI будет редактировать весь мой код с простым режимом, чтобы объяснить мой код .... – Merve

+0

Не могли бы вы еще раз взглянуть на мой вопрос .. – Merve

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