package com.andexp.skinmixer; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView; import com.andexp.skinmixer.skindata.SkinData; public class AdapterDesignerList extends BaseAdapter { private SkinData[] mData; private LayoutInflater mLayoutInflater; private Context mContext; public AdapterDesignerList(Context ctx, SkinData[] data) { this.mContext = ctx; this.mData = data; this.mLayoutInflater = LayoutInflater.from(ctx); } @Override public int getCount() { return mData.length; } @Override public Object getItem(int position) { return mData[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { Holder mHolder; if (convertView == null) { convertView = mLayoutInflater.inflate(R.layout.fragment_designerlist, null); mHolder = new Holder(); mHolder.tv_name = (TextView) convertView .findViewById(R.id.sm_designerlist_tv_designer1); mHolder.tv_donate = (TextView) convertView .findViewById(R.id.sm_designerlist_tv_designer_donate); mHolder.linear = (LinearLayout) convertView.findViewById(R.id.sm_designerlist_linear); convertView.setTag(mHolder); } else { mHolder = (Holder) convertView.getTag(); } if (mData[position] != null) { mHolder.linear.setVisibility(View.VISIBLE); setAuthor(position, mHolder); setDonateLink(position, mHolder); } else { mHolder.linear.setVisibility(View.GONE); } return convertView; } private void setDonateLink(final int position, Holder mHolder) { final String donate = mData[position].donate; if (TextUtils.isEmpty(donate)) { mHolder.tv_donate.setVisibility(View.GONE); } else { mHolder.tv_donate.setVisibility(View.VISIBLE); mHolder.tv_donate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(donate)); mContext.startActivity(i); } }); } } private void setAuthor(final int position, Holder mHolder) { String author = mData[position].author; if (TextUtils.isEmpty(author)) { mHolder.linear.setVisibility(View.GONE); } else { mHolder.linear.setVisibility(View.VISIBLE); mHolder.tv_name.setText(author); } } static class Holder { LinearLayout linear; TextView tv_name; TextView tv_donate; } }