2011-09-01 3 views

답변

0
public class SearchResultAdapter extends BaseAdapter { 

private Activity activity; 
private ArrayList<SearchResultInfo> ChoseInfo; 
private static LayoutInflater inflater=null; 
public SearchResultImageLoader imageLoader; 

public SearchResultAdapter(Activity a, ArrayList<SearchResultInfo> ChoseInfo) { 
    activity = a; 
    this.ChoseInfo=ChoseInfo; 
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    imageLoader=new SearchResultImageLoader(activity.getApplicationContext()); 
} 

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

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

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

public static class ViewHolder{ 
    public TextView PriceValue; 
    public ImageView image; 
    public TextView LikeValue; 
    public TextView LikeName; 

} 

public View getView(int position, View convertView, ViewGroup parent) { 
    View vi=convertView; 
    ViewHolder holder; 
    if(convertView==null){ 

     vi = inflater.inflate(R.layout.searchresult_showlayout_item, null); 
     holder=new ViewHolder(); 
     holder.PriceValue=(TextView)vi.findViewById(R.id.priceValue); 
     holder.image=(ImageView)vi.findViewById(R.id.clothimage); 
     holder.LikeName=(TextView)vi.findViewById(R.id.LikeName); 
     holder.LikeValue=(TextView)vi.findViewById(R.id.LikeValue); 


     vi.setTag(holder); 
    } 
    else 
     { 
      holder=(ViewHolder)vi.getTag(); 
     } 






    holder.PriceValue.setText(ChoseInfo.get(position).Price); 
    holder.LikeValue.setText(ChoseInfo.get(position).LikeNum); 
    holder.image.setTag(ChoseInfo.get(position).BitmapPath); 
    imageLoader.DisplayImage(ChoseInfo.get(position).BitmapPath, activity, holder.image); 
    holder.image.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      //这里以后要进行传值 
      Intent intent =new Intent(); 
      intent.setClass(getDialogContext(activity), SearchDetailActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
      getDialogContext(activity).startActivity(intent); 
     } 
    }); 


    return vi; 
} 
4

는 false로 attachToRoot를 설정; 그런 다음 초기화 한 후에 수동으로보기를 추가하십시오. 그렇지 않으면 추가 된 첫 번째 하위를 제외한 모든 자식에 대한 초기화가 손실됩니다.

예 :

View view = inflater.inflate(R.layout.some_view, parent, false); 
((TextView) view.findViewById(R.id.some_text)).setText(someString); 
parent.addView(view); 

하지 말아야 할 무엇의 예 :

View view = inflater.inflate(R.layout.some_view, parent); 
((TextView) view.findViewById(R.id.some_text)).setText(someString);