2011-12-09 4 views
2

android gridview에 텍스트 라벨을 추가 할 수 있나요? 표준 안드로이드 예제 인 Hello GridView을 사용하고 있습니다.Android Gridview에 라벨/텍스트 추가

예를 들어, 각 이미지 아래에 이미지 제목을 추가하려면이 방법이 있습니까? 그렇다면 누군가가 어떻게 작동하는지 설명 할 수 있습니까? 아니면이를 구현할 수있는 다른 방법이 있습니까? 감사!

답변

7

당신은 ListView에 우리가 사용자 레이아웃 당신도의 GridView를 들어 this Example 참조 의 GridView 항목에 대한 사용자 레이아웃을 만들 수 있습니다 ListRow를 보여 정의 등 사용자의 GridView를 만들 수 있습니다.

간단한 GridView 사용 지금 당장하고있는 것처럼 ImageView 하나만 표시 할 수 있습니다. 지금 각 그리드 항목에 다른보기 (텍스트)를 추가하려면 을 포함하는 하나의 XML 파일을 만들어야합니다. TextView 및 ImageView.

그런 다음 어댑터에서 XML 파일을 사용하고 GetView 메서드에서 이미지 및 텍스트를보기로 설정할 수 있습니다.

여기에 같은 대한 another example입니다 그리고 여기 또 다른 Good Example입니다. 활동에서

+1

대에 대한 코드입니다! 이것은 내가 찾고 있었던 바로 그 것이다! – user836200

+0

최근 편집 후 답변을 확인했는데 2 개의 링크가 추가되었습니다. 사용자 지정 GridView에 대해 더 많은 지식을 갖도록 추천합니다. – MKJParekh

+0

두 가지 모두 훌륭한 예입니다 (둘 다 첫 번째 사례보다 낫습니다). 다시 한 번 감사드립니다! – user836200

1

for Exaample은 LinearLayout을 사용하여 이미지 뷰를 추가하고 텍스쳐 뷰를 추가 한 다음 해당 레이아웃을 부 풀리고 convertview로 변환합니다.

0

콜이 어댑터는

 GridView view =(GridView) findViewbyId(is of grid view here); 
     view.setAdapter(new BottomMenuGridAdaptor(this.context)); 

이 어댑터

 public class BottomMenuGridAdaptor extends BaseAdapter { 


private Context context; 
public BottomMenuGridAdaptor(Context context) { 
    super(); 
    this.context = context; 
} 

@Override 
public int getCount() { 
    return mThumbIds.length; 
} 

@Override 
public Object getItem(int position) { 
    return position; 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

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

    if (convertView == null){ 
     convertView = LayoutInflater.from(context).inflate(R.layout.tab_button, null); 
    } 
    LinearLayout ll=(LinearLayout) convertView.findViewById(R.id.linear_topbar); 

    if(position==PostionHandler.getPosition(context)) 
     ll.setBackgroundResource(R.drawable.tab_blue_bg); 
    else 
     ll.setBackgroundResource(R.drawable.tab_red_bg); 

    ImageView imageView=(ImageView)convertView.findViewById(R.id.icon); 
    imageView.setImageResource(mThumbIds[position]); 
    TextView txt= (TextView) convertView.findViewById(R.id.title); 
    txt.setText(mThumbtext[position]); 
    return convertView; 
} 

private Integer[] mThumbIds = { 
     R.drawable.temp_thisweek, 
     R.drawable.temp_store, 
     R.drawable.temp_mylibrary, 
     R.drawable.temp_lateststore, 
     R.drawable.temp_more 
}; 

private String[] mThumbtext = { 
     "This Week", 
     "C&EN Store", 
     "My Library", 
     "Latest News", 
     "More" 
};