2012-11-26 3 views
0

저는 listview를 단지 imageview로 한 행만 만들려고합니다. 여기 내 어댑터입니다 :목록보기가 한 행 차이 만 설정합니다.

public class ListAdapter extends BaseAdapter { 

private Context activity; 
private ArrayList<HashMap<String, String>> data; 
private static LayoutInflater inflater=null; 

public ListAdapter(Context a, ArrayList<HashMap<String, String>> d) { 
    activity = a; 
    data=d; 
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

public int getCount() { 
    return data.size(); 
} 

public Object getItem(int position) { 
    return data.get(position); 
} 

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

public View getView(int position, View convertView, ViewGroup parent) { 
    View vi=convertView; 
    if(convertView==null) 
     vi = inflater.inflate(R.layout.listview, null); 
    TextView subject = (TextView)vi.findViewById(R.id.subject); 
    TextView added = (TextView)vi.findViewById(R.id.added); 
    TextView permalink = (TextView)vi.findViewById(R.id.permalink); 

    HashMap<String, String> map = new HashMap<String, String>(); 
    map = data.get(position); 

    //Setting all values in listview 
    subject.setText(map.get(ViewPagerAdapter.KEY_NEWS_SUBJECT)); 
    added.setText(map.get(ViewPagerAdapter.KEY_NEWS_LAPSE)); 
    permalink.setText(map.get(ViewPagerAdapter.KEY_NEWS_PERMA)); 
    return vi; 
} 

}

현재 레이아웃이 몇 텍스트 뷰를 가지고,하지만 유일한 행은 난 단지 이미지 뷰를 표시하기 위해 4 일을 해결 말할 수 있습니다. 어떻게해야합니까 ??

+0

어댑터의 내용에 다른 레이아웃을 사용하려면'getItemViewType (int position)'과'getViewTypeCount()'를 참조하십시오. [이 답변] (http://stackoverflow.com/a/13150279/1029225)과 거기에 제공된 링크를보십시오. 또한 뷰 바인딩 프로세스를 최적화하기 위해 ViewHolder/RowWrapper 패턴을 구현하는 것을 잊지 마십시오. –

답변

0

먼저 사용자 정의 레이아웃에 ImageView를 추가하십시오.

ImageView image = (ImageView)vi.findViewById(R.id.imageview); 
    if(position == 0){ // here I suppose you want it display on the first row 
     image.setVisibility(View.Visible); 
    } 
    else{ 
     image.setVisibility(View.GONE); 
    } 

사이드 참고 : 당신의 public View getView(int position, View convertView, ViewGroup parent) 방법 내부
다음과 같은 추가 내가의 getView를 사용할 때이 ViewHolder를 사용하도록 조언();

+0

나는 getItemViewType 메소드를 시도했지만 그렇게하지 못했다. 그러나이 메소드는 다른 행이 하나뿐이므로 훨씬 더 쉽다. – Eric