2014-09-06 2 views
0

ArrayAdapter에서 확장 된 AdapterItems라는 이름의 클래스 내에있는 Listview 용 어댑터 클래스가 있습니다.목록보기 내 비 활동 클래스에서 진행 대화 상자를 표시하는 방법

Activity에서 확장되지 않은이 클래스에서 진행률 대화 상자를 사용하려면 어떻게해야합니까?

은 목록보기

public void fill(final ArrayAdapter<RssParser.Item> adapter, final RssParser.Item item, final int position) 
    { 

     Thread thread = new Thread(new Runnable() { 

      @Override 
      public void run() { 

       ActivityStartup.handler.post(new Runnable() { 

        @Override 
        public void run() { 
         ActivityStartup.dismissLoadingDialog(); 
         txtTitle.setText(item.title); 
         txtDate.setText(item.pubDate); 
         txt_time.setText(item.time); 
         txtDescription.setText(item.description); 
         layoutRoot.setOnClickListener(new OnClickListener() { 

          @Override 
          public void onClick(View v) { 

           if (progress == null) { 
            progress = new ProgressDialog(v.getContext()); 
            progress.setTitle("title"); 
            progress.setMessage("loading"); 
           } 
           progress.show(); 
           G.SelectedApplication = item; 

           Intent intent = new Intent(G.context, Adapter_Description.class) 
             .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
           intent.putExtra("INPUT", item.link + ""); 
           intent.putExtra("INPUT_DESC", item.description + ""); 
           G.context.startActivity(intent); 
          } 
         }); 

        } 
       }); 
      } 
     }); 
     thread.start(); 

    } 
} 

나는 충돌을 가지고 대화 상자를 보려면 목록보기의 항목에 클릭 내 채우기 방법이 내 로그인

09-06입니다 12 : 04 : 10.368 : E/AndroidRuntime (5112) : 치명적인 예외 : 메인 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.view.WindowManager $ BadTokenException : 윈도우를 추가 할 수 없습니다 - 토큰 null 응용 프로그램이 아닙니다. 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.view.ViewRootImp l.setView (ViewRootImpl.java:571) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:246) 09-06 12:04 : 10.368 : E/AndroidRuntime (5112) : android.view.WindowManagerImpl.addView (WindowManagerImpl.java:69) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.app.Dialog.show (Dialog.java:281) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : com.myApp.course.app.feed_reader.AdapterItems $ ViewHolder $ 1 $ 1 $ 1.onClick (AdapterItems.java:71) 09/06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.view.View.performClick (View.java:4204) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android .view.View $ PerformClick.run (View.java:17355) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.os.Handler.handleCallback (한) dler.java:725) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.os.Handler.dispatchMessage (Handler.java:92) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.os.Looper.loop (Looper.java:137) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : android.app.ActivityThread.main (ActivityThread.java : 5041) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : java.lang.reflect.Method.invokeNative (기본 메소드) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : .Com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit())에서. com.android.internal.os.ZygoteInit $. .java : 793) 09-06 12 : 04 : 10.368 : E/AndroidRuntime (5112) : com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) 09/12 : 04 : 10.368 : E/AndroidRuntime (5112) : dalvik.system.NativeStart.main (네이티브 메소드) 09-06 12 : 04 : 36.292 : E/InputDispatcher (467) : 채널 'a69034a0 com. myApp.course.app.feed_reader/com.myApp.course.app.feed_reader.ActivityStartup (server) '~ 채널이 복구 불가능하게 손상되어 삭제됩니다!

답변

1

은 그냥 ProgressDialog

private Activity activityContext; 

Public YourClassName(Activity activityContext) 
{ 
    this.activityContext = activityContext; 
} 

이 후해서 ProgressDialog를 초기화하는이 컨텍스트를 사용 후, 당신의 non_activity 클래스의 생성자로 활동 Context을 통과 보여 그 컨텍스트를 사용

progressDialog = new ProgressDialog(activityContext); 
+0

어떻게됩니까? 난 안드로이드에서 새로운거야 – user3453159

+0

나는이 방법에 대한 오류가 있음을 알았지 만 : 암시 적 슈퍼 생성자 ArrayAdapter ()은 정의되지 않았습니다. 명시 적으로 다른 생성자를 호출해야합니다 – user3453159

+0

예 답장을 얻었습니다. – user3453159

0

전달해야합니다

활동 컨텍스트

비 활동 클래스. 그런 다음 해당 컨텍스트를 사용하여 대화 상자를 표시하십시오.

+0

어댑터 클래스의 전체 코드 넣기 –

관련 문제