//實作在NEW這個adapter上CouponsDetailActivity的
CouponsAdapter .init(new ListAdapterCallbacks() {
/*
*
*/
// TODO: Auto-generated Javadoc
/**
* The Class CouponsAdapter.
*/
public class CouponsAdapter extends BaseAdapter {
/** The inflater. */
private static LayoutInflater inflater = null;
/** The m context. */
private Context mContext;
/** The m callback. */
private ListAdapterCallbacks mCallback;
/** The m j array. */
private JSONArray mJArray;
private String mName;
private String mDisplayImage;
ArrayList<CouponsWrapper> couponsTicketAryList=null;//MemberFragment
/**
* Instantiates a new coupons adapter.
*
* @param context
* the context
* @param jArray
* the j array
*/
public CouponsAdapter(Context context, JSONArray jArray) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mContext = context;
mJArray = jArray;
}
public CouponsAdapter(Context context) {
mContext = context;
}
public CouponsAdapter(Context context,ArrayList<CouponsWrapper> couponsTicketAryList) {//MemberFragment 目前無作用
mContext = context;
this.couponsTicketAryList=couponsTicketAryList;
Log.d("TAG CouponsAdapter() ","couponsTicketAryList");
}
public void setArray(JSONArray jArray) {
this.mJArray = jArray;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
String imageUrl = JsonUtils.URL + mDisplayImage;
new DownloadFileFromURL().execute(imageUrl, mName);
}
});
thread.start();
}
/*
* (non-Javadoc)
*
* @see android.widget.Adapter#getCount()
*/
@Override
public int getCount() {
// TODO Auto-generated method stub
if (mJArray != null) {
return mJArray.length();
} else {
return 0;
}
}
/*
* (non-Javadoc)
*
* @see android.widget.Adapter#getItem(int)
*/
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
/*
* (non-Javadoc)
*
* @see android.widget.Adapter#getItemId(int)
*/
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
/**
* The Class ViewHolder.
*/
public static class ViewHolder {
/** The nearby icon. */
public ImageView nearbyIcon;
/** The nearby title. */
public TextView nearbyTitle;
}
ViewHolder holder;
/*
* (non-Javadoc)
*
* @see android.widget.Adapter#getView(int, android.view.View,
* android.view.ViewGroup)
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null) {
//Log.d("TAG getView","mFavoriteCouponsAdapter");//MemberFragment
vi = inflater.inflate(R.layout.couponsadapter, null);
holder = new ViewHolder();
holder.nearbyIcon = (ImageView) vi.findViewById(R.id.icon);
holder.nearbyTitle = (TextView) vi.findViewById(R.id.textView1);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
if(couponsTicketAryList==null){
//Log.d("TAG getView if","couponsTicketAryList==null");
setCouponsAdapter(position);
}else{
CouponsWrapper favoriteWrapper = couponsTicketAryList.get(position);
Log.d("TAG getView else",favoriteWrapper.TITLE);//MemberFragment
holder.nearbyTitle.setText(favoriteWrapper.TITLE);
holder.nearbyIcon.setImageBitmap(Utils.openBinImg(favoriteWrapper.NAME));
Log.d("TAG getView else",favoriteWrapper.NAME);//MemberFragment
//顯示廣告
}
vi.setOnClickListener(new OnItemClickListener(position));
return vi;
}
public void setCouponsAdapter(int position){
try {
JSONObject json_data = mJArray.getJSONObject(position);
String title = json_data.getString("title");
JSONObject productProvider = json_data
.getJSONObject("productProvider");
JSONObject displayImage = productProvider
.getJSONObject("displayImage");
mDisplayImage = displayImage.getString("downloadUrl");
mName = displayImage.getString("fileName");
String name = productProvider.getString("name");
String startDate = json_data.getString("startDate");
String endDate = json_data.getString("endDate");
holder.nearbyTitle.setText(title);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
String imageUrl = JsonUtils.URL + mDisplayImage;
new DownloadFileFromURL().execute(mDisplayImage, mName);
}
});
thread.start();
holder.nearbyIcon.setImageDrawable(Drawable
.createFromPath(Environment.getExternalStorageDirectory()
.toString() + "/" + mName));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* The listener interface for receiving onItemClick events. The class that
* is interested in processing a onItemClick event implements this
* interface, and the object created with that class is registered with a
* component using the component's
* <code>addOnItemClickListener<code> method. When
* the onItemClick event occurs, that object's appropriate
* method is invoked.
*
* @see OnItemClickEvent
*/
private class OnItemClickListener implements OnClickListener {
/** The m position. */
private int mPosition;
/**
* Instantiates a new on item click listener.
*
* @param position
* the position
*/
OnItemClickListener(int position) {
mPosition = position;
}
/*
* (non-Javadoc)
*
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
//Log.d("class CouponsAdapter mPosition:", "" + mPosition);
mCallback.launchDetailPage(mPosition);
}
}
/**
* The Interface ListAdapterCallbacks.
*/
public static interface ListAdapterCallbacks {
/**
* Launch detail page.
*
* @param mPosition
* the m position
*/
void launchDetailPage(int mPosition);
}
/**
* Inits the.
*
* @param listAdapterCallbacks
* the list adapter callbacks
*/
public void init(ListAdapterCallbacks listAdapterCallbacks) {
mCallback = listAdapterCallbacks;
}
}
然後再CouponsFragment再implement
couponsAdapter = new CouponsAdapter(mContext,jArray);
mListView.setAdapter(couponsAdapter);
couponsAdapter.init(new ListAdapterCallbacks() {
@Override
public void launchDetailPage(int position) {
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("JSONARRAY",jArray.toString());
bundle.putInt("POSITION", position);
intent.putExtras(bundle);
intent.setClass(getActivity(), CouponsDetailActivity.class);
startActivity(intent);
}
});
沒有留言:
張貼留言