2014-09-20 6 views
0

앱이 실행될 때 내비게이션 서랍 listview 콘텐츠를 변경하고 싶습니다. onStart() 메서드에서 실행되는 AsyncTask를 사용하여이 작업을 수행하려고했지만 탐색 창 목록에 항상 비어 있습니다. 에서 onCreate() 메소드에서 내가 문자열을 수동으로 추가하는 경우에만onstart에서 내비게이션 서랍 목록 변경

@Override 
     protected void onPostExecute(String result) { 
      partite.add(partita1.toUpperCase()); 
      partite.add(partita2.toUpperCase()); 
      partite.add(partita3.toUpperCase()); 
      partite.add(partita4.toUpperCase()); 
      partite.add(partita5.toUpperCase()); 
      partite.add(partita6.toUpperCase()); 
      partite.add(partita7.toUpperCase()); 
      partite.add(partita8.toUpperCase()); 
      partite.add(partita9.toUpperCase()); 
      partite.add(partita10.toUpperCase()); 
      progressD.dismiss(); 
} 

탐색 서랍이 항목을 보여줍니다

내가 이런 식으로 어댑터 ( List<String> partite = new ArrayList<String>();)를 입력 onPostExecute 방법에서
protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     new UpdateTask().execute(); 
     setContentView(R.layout.activity_main); 

     mTitle = mDrawerTitle = getTitle(); 
     navMenuTitles = getResources().getStringArray(R.array.menu_array); 
     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) findViewById(R.id.left_drawer); 


     // set a custom shadow that overlays the main content when the drawer opens 
     mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); 
     // set up the drawer's list view with items and click listener 
     mDrawerList.setAdapter(new ArrayAdapter<String>(this, 
       R.layout.drawer_list_item, partite)); 
     mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); 

: 이것은 내 코드입니다 like :

partite.add("hello"); 

그러면 탐색함에이 항목과 asynctask에 추가 된 항목이 있습니다. 어떻게이 문제를 해결할 수 있습니까?

+0

어댑터에서'notifyDataSetChanged()'를 호출 하시겠습니까? 'onPostExecute()'가 실행되고 있습니까? –

답변

0

당신은에 어댑터를 재설정해야 onpostexecute

mDrawerList.setAdapter(new ArrayAdapter<String>(this, 
       R.layout.drawer_list_item, partite)); 

또는

당신이 어댑터 notifyDataSetChanged()를 호출해야합니다.

+0

최고의 답변! 고맙습니다! –

+0

환영합니다 .. 모든 최고 –

관련 문제