2012-01-14 3 views
0

사용자가 버튼을 누르면 이미지를 볼 수있는 응용 프로그램이 있습니다. 다른 화면은 다른 활동에 있습니다. 많은 이미지가 많은 kbs이고로드하는 데 시간이 걸리기 때문에 사용자에게 알려주고 버튼을 누르고 기다려야한다는 것을 알 필요가 있습니다. 회 전자를 사용하여 시도했지만 내 xml에서 작동하지 못하므로 다른 것을 제안 할 수 있습니까? 대부분의 안드로이드 애플 리케이션은 최종 화면이로드 될 때까지 검은 색 화면을 가지고 있습니다. 예를 들어, 버튼이 배경색을 변경하여 사용자가 그것을 누르고 기다려야한다고 제안하는 경우. 그리고 코드에서 어디에 위치시켜야합니까?버튼을 누른 후 대기하는 이미지 아이콘

여기 내 코드입니다.

b4.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View l) { 
        /*ParnassosTheme();*/ 
        Intent i = new IntentScreen.this,OtherScreen.class); 
        Bundle b = new Bundle(); 
        b.putString("id", id); 
        i.putExtras(b); 
        startActivity(i); 
      } 
      }); 

내 다른 화면 활동

public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
...do things... 

답변

1

당신이 작업을로드 할 작업의 시작 부분에서 진행 대화 상자를 표시하고 작업이 완료되면이를 기각. 참고 : 잘 작동하지만 onCreateDialog()는 이미 사용되지 않음 info here입니다. SDK 11 이상을 타겟팅하는 경우 DialogFragment를 사용하는 것이 좋습니다 (read here).

public class OtherScreen extends Activity{ 
    private static final int LOADING_DIALOG_KEY = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     // initialization 

     // show loading dialog 
     showDialog(LOADING_DIALOG_KEY); 

     new LoadDataTask().execute(); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id){ 

     ProgressDialog dialog = null; 

     if (id == LOADING_DIALOG_KEY){ 

      dialog = new ProgressDialog(this); 
      dialog.setTitle("Dialog title"); 
      dialog.setMessage("Data loading..."); 
      dialog.setIndeterminate(true); 
      dialog.setCancelable(false); 
     } 

     return dialog; 
    } 

    private final class LoadDataTask extends 
     AsyncTask<Void, Void, Void> 
    { 

     @Override 
     protected Void doInBackground(Void... params) 
     { 
      // do work here 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) 
     { 
      dismissDialog(LOADING_DIALOG_KEY); 
     } 
    } 
} 
+0

나는 그것을 시험해 볼 것이고 나는 게시 할 것이다. "참고 : 괜찮습니다. 그러나 onCreateDialog()는 이미 여기에서 더 이상 사용되지 않는 정보입니다." 초기화 섹션에 무엇을 써야합니까? 더 이상 지원되지 않으므로 deprecated Google의 – ghostrider

+0

은 더 이상 사용하지 않는 것이 좋습니다 (3 년 IIRC). 그러면 SDK에서 제거됩니다. 초기화 섹션에서는 대개 활동의 구성 요소를 초기화합니다. 이 섹션은 ProgressDialog를 작동시키는 데 필요한 것입니다. – Maxim

+0

좋아, 나는 이것을 시도하고 그것은 아무것도 바꿀 수 없다. 내가 dismissdialogbox를 제거하면 그것은 영원히로드됩니다. 그래서 그것은 틀린 장소에 놓았습니다. 어디에서해야합니까? 모든 것이 끝나면? – ghostrider

관련 문제