2012-11-03 5 views
0

나는 AndEngine을 사용하는 게임을하고 있는데, 사용자들에게 Facebook 친구들의 목록을 보여줄 필요가있다. ListView에 대한 사용자 정의 Adatper을 작성했으며로드가 끝나면 모든 것이 잘 작동합니다. 자체 로딩 부분에 문제가 있습니다.다른 대화 상자 안의 Android ProgressDialog

ListView이 대화 상자 내부 그래서 내가 그 AsyncTask에 나는 ProgressDialog을 가지고 친구 '정보를 가져 오기 위해 AsyncTask을하고 있는데, 사용자 정의 대화 상자 안에 있습니다. 문제는로드 할 때 제목 인 대화 상자 뒤에 ProgressDialog이 표시된다는 것입니다. 나는 그 대화 뒤에 ProgressDialog "엿보기"를 볼 수 있습니다 .. 어떤 아이디어? 여기

는 일부 코드입니다 : 다른 대화 상자에서 대화 상자를 열기

FriendsDialog.java

private ProgressDialog dialog; 

//Constructor of the AsyncTask 
public FriendsLoader(Context context) { 
    dialog = new ProgressDialog(context); 
    dialog.setMessage("Please wait..\nLoading Friends List."); 
} 

@Override 
protected void onPreExecute() { 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    dialog.setView(inflater.inflate(R.layout.loading, null)); 
    dialog.setMessage("Please wait..\nLoading friends."); 
    dialog.show(); 
} 

@Override 
protected void onPostExecute(ArrayList<HashMap<String, Object>> data) { 
    if (dialog.isShowing()) { 
     dialog.dismiss(); 
    } 
    MyAdapter myAdapter = new MyAdapter(context, data); 
    listView = (ListView) findViewById(R.id.list); 
    listView.setAdapter(myAdapter); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) { 
      String id = (String) listView.getItemAtPosition(myItemInt); 
      listener.onUserSelected(id); 
      dismiss(); 
     } 
    }); 
} 
+1

미안하지만, "대화 상자 안의 Android ProgressDialog"와 같은 문제를 읽을 때 두뇌가 끓기 시작했습니다. 나는 네가 악한 일을 만들어 내고 있다고 생각한다. 나의 충고 : 올바른 생각을하려고 노력하고, 그들이해야만하는 방식대로 일을하십시오. –

+0

처음 엔 AndEngine 만 사용하여이 작업을 수행하려고했지만 어떻게 찾을 수 없었습니다. 정말로 그렇게 복잡한 것은 아닙니다. 목록이있는 대화 상자에는 데이터를로드하는 동안로드 표시기가 있어야합니다. –

+1

ProgressBar 또는 그와 유사한 내용을 대화 상자의 내용으로 사용하지 않는 이유는 무엇입니까? 로드가 끝나면 내용을 변경하고 ListView로 바꿉니다. – Flawyte

답변

2

그들 중 하나가 진행 대화 상자 특히 경우, 가장 좋은 생각이 아니다 (화면을 회전하려고이 ..) .

프렌드 대화 상자가이 전망이있을 것이다 : ListView를하고 ProgressBar를

나는 더 나은 방법을 제안한다. 데이터를로드하면 ListView가 표시되지 않고 ProgressBar가 표시됩니다. 데이터로드가 완료되면 두보기간에 가시성을 전환하면됩니다.

보기간에 더 부드러운 전환을 위해 ViewAnimator을 사용할 수 있습니다.이 모드는 공개 모드를 관리하며 전환 (예 : 페이드, 슬라이드 등)에 효과를 추가 할 수도 있습니다. 사용하기가 매우 간단하며 온라인에서 많은 예제가 있습니다.

행운을 빕니다!

+0

좋은 답변입니다. 기대했던 것보다 더 잘 작동합니다! 감사. 그것이 나를 허락 할 때 현상금을 줄 것이다 (지금부터 13 시간). –

0

스타일을 (매니페스트에서) 설정하여 대화 상자로 사용하십시오. 그 활동 내에서 진행 대화 상자를 사용할 수있는 것보다