마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

개발중 또 오류가 납니다(java.lang.NullPointerException)

0 추천

 제가 리스트뷰에 추가하는것을 for문으로 출력하니 한개만 출력되어서

countdowntimer를 쓰니 에러가 뜹니다.

에러가나는 소스는 onFinish()에 위치해 있습니다.

12-14 14:51:27.237: E/AndroidRuntime(22818): FATAL EXCEPTION: main
12-14 14:51:27.237: E/AndroidRuntime(22818): java.lang.NullPointerException
12-14 14:51:27.237: E/AndroidRuntime(22818):  at com.kmcpe.mcpelauncher.GoApp$1.onFinish(GoApp.java:78)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:118)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at android.os.Looper.loop(Looper.java:137)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at android.app.ActivityThread.main(ActivityThread.java:4950)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at java.lang.reflect.Method.invokeNative(Native Method)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at java.lang.reflect.Method.invoke(Method.java:511)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:997)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
12-14 14:51:27.237: E/AndroidRuntime(22818):  at dalvik.system.NativeStart.main(Native Method)

 


 private ArrayList<Apps_List_Data> Array_Data;
 private Apps_List_Data data;
 private Apps_List_Adapter adapter;

 String[] app_c;
 String[] app_n;
 String[] app_m;
 ListView custom_list;
 ProgressDialog dialog;

 

 

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.goapp);

  dialog = new ProgressDialog(this);
  dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  dialog.setCancelable(false);
  dialog.setMessage("로딩중 입니다.");
  dialog.show();

  PackageManager pm = getPackageManager();
  app_c = getResources().getStringArray(R.array.apps_c);
  app_n = getResources().getStringArray(R.array.apps_n);
  app_m = getResources().getStringArray(R.array.apps_m);
  RelativeLayout layout = (RelativeLayout)findViewById(R.id.goapp_layout);
  Drawable d = layout.getBackground();
  d.setAlpha(100);
  layout.setBackgroundDrawable(d);
  //ArrayList<String> app_cc = new ArrayList<String>();
  //ArrayList<String> app_nn = new ArrayList<String>();
  final List< ApplicationInfo > appList = pm.getInstalledApplications( 0 );
  new CountDownTimer(3000, 1000) {
   int c = 0;
   public void onTick(long millisUntilFinished) {
    int nSize = appList.size();
    int appsize = app_c.length;
    if(c<appsize){
     c++;
     for(int i = 0 ; i < nSize; i++ ) {
      if(appList.get(i).packageName.indexOf(app_c[c]) != -1){
       Array_Data = new ArrayList<Apps_List_Data>();
       data = new Apps_List_Data(R.drawable.ic_launcher/*pm.getApplicationIcon(app_cc.get(c))*/, app_n[c],
         app_c[c]);
       Array_Data.add(data);
      }
     }
    }
   }
   public void onFinish() {
    dialog.dismiss();
    adapter = new Apps_List_Adapter(GoApp.this,android.R.layout.simple_list_item_1, Array_Data);
    custom_list.setAdapter(adapter);
    custom_list = (ListView) findViewById(R.id.apps_listview);
          }

  }.start();
  
 }

 

KMCPE (260 포인트) 님이 2013년 12월 14일 질문

1개의 답변

0 추천

리스트뷰를 먼저 가져와야하는데 나중에 가져오니 널값에러죠

 

custom_list = (ListView) findViewById(R.id.apps_listview);

건방진프로그래머 (26,630 포인트) 님이 2013년 12월 14일 답변
...