2012-05-18 2 views
0

사용자 지정 ListViewAdapter를 새로 고칩니다.LayoutInflater NullPointerException

편집 :

나는 그것이 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 inflater = (LayoutInflater) mContext.getSystemService (LAYOUT_INFLATER_SERVICE);를 사용해 보았습니다. –

+0

지금 사용했는데 작동하지 않았습니다. – Merve

+0

LayoutInflater.from (getApplicationContext())? – Blackbelt

답변

2

오류 로그에서 getApplicationContext()가 null을 반환하는 것처럼 보입니다. 언제 전화 할게 goruntuleNesnesi.ListviewRefresh();? onCreate (...)에 있습니까? 그렇다면 getApplicationContext(...)onCreate(...) 초기화가 완료 될 때까지 null을 반환하므로 문제 일 수 있습니다.

편집 : 스택 추적을 조금 더 살펴 보았고 버튼 클릭으로 ListviewRefresh를 호출하는 것처럼 보입니다. getApplicationContext (...) 대신 this을 사용해 보셨습니까?

편집 2이 시도 : 활동이 아직 화면에 그려진되지 않은 초기화되지 않았기 때문에 비록

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

을, 나는 그것이 같은 문제로 고통 수 생각 , 당신은 그것에 대한 의견을 팽창시킬 수 없습니다. 그것을 밖으로 시도하고 우리는 거기에서 갈거야.

+0

네 말이 맞다! oncrete가 생성되기 전에 layoutinflater를 호출합니다. 그리고 goruntuleactivity가 창안 된 후에 layputinflater에게 전화를 걸어 봅니다. 그러나 그것은 나에게 "진짜 실수"를주었습니다. 내 말은 내 응용 프로그램이 주황색과 예외가없는 예외를 의미하지만 oncreate와 layoutinflater를 호출 한 후에는 충돌이라고합니다. S 무엇을해야합니까? 내 질문에 내 새로운 로그캣 오류를 편집 – Merve

+0

나는 이것을 시도하고 그 결과가 나를 혼란스럽게 만든다 : SI는 내 코드를 설명하기 위해 간단한 모드로 모든 코드를 편집 할 것이다 ... – Merve

+0

다시 내 질문을 볼 수 있겠습니까? – Merve