2012-01-16 3 views
8

사용자 지정 어댑터에 연결된 항목의 ArrayList가 있습니다. 항목은 알파벳순으로되어 있습니다. ListView를 알파벳 순으로 구분 된 ListView의 각 행에 최대 4 개의 항목을 갖게하고 싶습니다.ListView에서 같은 행에 여러 항목을 넣으려면 어떻게해야합니까?

[안녕하세요] [병원] [호텔] [핫스팟]

[하우스]

[불가능] [희한]

그래서 여러 항목에 대한 것입니다 : 예를 들어

ListView의 같은 행

맞춤 어댑터 클래스의 getView() 메소드에서 position 변수를 사용하여이를 수행하는 방법이 있습니까? 여기

의 품질 미안 예이다 : 이미지 People Screen

등의 ArrayList와 배킹 스토어는 알파벳순으로 그 이름을 포함한다.

+0

[기사] (http://www.vogella.de/articles/AndroidListView/article.html) 및 [또한 이쪽 (http://saigeethamn.blogspot.com/2010/04/)을 확인하십시오. custom-listview-android-developer.html) 인터넷에는 검색 만하면 더 많은 정보가 제공되며, 더 잘 찾을 수 있습니다. – MKJParekh

+0

이봐 요,이 해결책을 찾을 수 있습니까 – HoangQBH

답변

5

textview.setText로 설정 값보다 더 아무것도 인쇄 할 수 없습니다. 개체의 ArrayAdapter에 대한 GetView 메서드.

예 아래 참조 :

See this link.

정말 도움이 될 것입니다.

즐기십시오. :)

+1

그 예에서 사람들의 이름은 위에서 아래로 표시됩니다. 좋은 예이며 알파벳 순으로 그룹화하는 방법을 찾고 있습니다. 예를 들어, 성이 Albert 인 사람은 한 줄에 표시됩니다 (최대 4 명). 행 당 하나의 후원 항목 만이 아니라 최대 4 개까지. – benkdev

+0

거친 스크린 샷을 넣어 주시겠습니까? –

+0

@benkdev : ListView에 표시하기 전에 원하는대로 데이터를 정렬해야합니다. 데이터를 정렬 한 후에는 원하는 데이터를 얻을 수 있습니다. –

1

예, 매개 변수 중 하나는 4 textviews 귀하의 목록보기의 레이아웃에 다시

public abstract View getView (int position, View convertView, ViewGroup parent) 
+0

백업 저장소에 많은 항목이 있고 어댑터에 연결되어있는 경우 어댑터의 getView는 각 행에 대한 항목 중 하나를 반환합니다. 맞습니까? ListView의 한 행에 많은 항목을 넣고 목록에있는 위치를 추적하려고합니다. – benkdev

0

넣어 관련보기를 전송하는 데 사용의 getView를 다음과 같이 자신의 값을 설정할 수있는 위치 인의 getView() 메소드 hashMap의 메소드()를 호출합니다. getView의 첫 번째 매개 변수를 사용하여 listview의 선택된 항목의 위치를 ​​가져올 수 있습니다. 경우 당신은 CustomListView을 구현해야한다 ("")

private List<HashMap<String, String>> myData = new ArrayList<HashMap<String, String>>(); 

    public MyArrayAdapter(Context context, int textViewResourceId, List<HashMap<String, String>> objects) 
    { 
     super(context, textViewResourceId, objects); 
     try 
     { 
      context = getContext(); 
      myData = objects; 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    View v = convertView; 

    if(v == null) 
    { 
     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = inflater.inflate(R.layout.list_message_give_away_volunteers, null); 
    } 

    HashMap<String, String> hasValues = myData.get(position); 

    if(hasValues != null) 
    { 

     TextView txt_VolunteerName = (TextView)v.findViewById(R.id.txtVolunteerName); 
     txt_VolunteerName.setText(hasValues.get(DatabaseConstant.key_USER_NAME)); 

     TextView txt_SkillLevel = (TextView)v.findViewById(R.id.txtSkillLevel); 
     txt_SkillLevel.setText(hasValues.get(DatabaseConstant.key_SKILL_LEVEL)); 

    } 
} 
관련 문제