0

hashadmap으로 simpleadapter 빌드로 navigationDrawer Android 메뉴를 채우려고합니다.simpleadapter를 사용하여 navigationDrawer android를 채우는 방법은 무엇입니까?

내 코드는 다음과 같습니다. 내 탐색 창 메뉴의 각 항목을 작성하기 위해 각 항목에 대해 txt 및 img 값을 검색하는 방법을 모르겠습니다.

제 코드를 좀 봐 주시겠습니까?

SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to); 
mDrawerList.setAdapter(adapter); 

하지만 난 각 항목에 대해 글꼴을 설정하기 위해의 getView를 구현해야합니다

는 그 다음 라인을 사용하여이 작업을 수행 할 수 있습니다 알고 있습니다.

String[] names = new String[]{ 
       "Home", 
       "International", 
       "National", 
       "High Tech", 
       "Sports", 
       }; 

     /*Array of Images*/ 
     int[] image = new int[] { 
       R.drawable.ic_action_home, 
       R.drawable.ic_action_globe, 
       R.drawable.ic_action_feed, 
       R.drawable.ic_action_tv, 
       R.drawable.ic_action_ball, 
     }; 

     List<HashMap<String, String>> listinfo = new ArrayList<HashMap<String, String>>(); 
     listinfo.clear(); 
     for(int i=0;i<names.length;i++){ 
      HashMap<String, String> hm = new HashMap<String, String>(); 
      hm.put("name", names[i]); 
      hm.put("image", Integer.toString(image[i])); 
      listinfo.add(hm); 
     } 

     // Keys used in Hashmap 
     final String[] from = { "image", "name" }; 
     int[] to = { R.id.img, R.id.txt }; 

// The 2 followings lines works fine but i want to implement getView in order to set Typeface on my text 
//  SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to); 
//  mDrawerList.setAdapter(adapter); 


     SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to){ 
      @Override 
      public View getView(int pos, View convertView, ViewGroup parent){ 
       View v = convertView; 
       if(v== null){ 
        LayoutInflater vi = (LayoutInflater)getSystemService(getBaseContext().LAYOUT_INFLATER_SERVICE); 
        v=vi.inflate(R.layout.drawer_list_item, null); 
       } 
       TextView tv = (TextView)v.findViewById(R.id.txt); 
       tv.setText(??????????); 
       tv.setTypeface(faceBold); 
       return v; 
      } 
     }; 
     mDrawerList.setAdapter(adapter); 
+0

사용자 지정 어댑터 사용 – Raghunandan

답변

1

정말 간단 솔루션과 Raghunandan 잘입니다 (이것은 당신이 어떤 답을하지 않는 이유입니다) : 당신이 코드를 자신의 사용자 정의 어댑터을해야한다.

this guide을 살펴보십시오. 이 방법을 재정의해야합니다.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ... 
    // Your code for set different TypeFace go here 
} 

이렇게하면 각 항목에 대해 TypeFace를 설정할 수 있습니다.

+0

예, 그것이 제가 한 것입니다. 내 코드를 참조하십시오. 그러나 나는 텍스트를 설정하기 위해 내가 무엇을 할 수 있는지 모른다. (내 코드에서 ??????? 대체하여) – wawanopoulos

+0

@wawanopoulos 불행히도 : 당신이 잘못하고있다. 사용자 지정 어댑터에 의해 다음과 같은 클래스를 만들려고합니다 : 공용 클래스 YourAdapter extends SimpleAdapter {...}. – JJ86

관련 문제