4
뷰를 부풀려서 LinearLayout
의 하위 뷰 목록에 추가하는 방법은 무엇입니까? 당신이 인플레이터 생성자를 호출 할 때선형 레이아웃에 부 풀린 뷰를 추가하는 방법
뷰를 부풀려서 LinearLayout
의 하위 뷰 목록에 추가하는 방법은 무엇입니까? 당신이 인플레이터 생성자를 호출 할 때선형 레이아웃에 부 풀린 뷰를 추가하는 방법
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;
}
는 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);