package com.umeng.example.xp; import java.util.List; import android.app.Activity; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.markupartist.android.widget.ActionBar.Action; import com.umeng.example.R; import com.umeng.ui.BaseSinglePaneActivity; import com.umeng.xp.Promoter; import com.umeng.xp.common.ExchangeConstants; import com.umeng.xp.controller.ExchangeDataService; import com.umeng.xp.controller.XpListenersCenter.ExchangeDataRequestListener; /** * 将广告数据封装到自定义的View上。 * 1.必须指定service展现类型(service.layoutType = ExchangeConstants.type_large_image;) * 2.广告被展示时必须调用接口将展示report 发送给服务器(service.reportImpression(promoter);) * 3.广告点击必须调用接口处理 (service.clickOnPromoter(promoter);) * @author Jhen * */ public class PromoterDataExample extends BaseSinglePaneActivity { @Override protected Fragment onCreatePane() { final ExampleFragment exampleFragment = new ExampleFragment(); //刷新翻页 getUActionBar().addAction(new Action() { @Override public void performAction(View view) { view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { exampleFragment.paging(); } }); } @Override public int getDrawable() { return R.drawable.umeng_example_xp_action_refresh; } }); return exampleFragment; } public static class ExampleFragment extends Fragment { Context mContext; ExchangeDataService service; ExchangeDataRequestListener listener; @Override public void onAttach(Activity activity) { super.onAttach(activity); mContext = activity; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View root = inflater.inflate( R.layout.umeng_example_xp_custom_promoter_wall, container, false); service = new ExchangeDataService("40459"); //添加feature 类型 (必须) service.layoutType = ExchangeConstants.type_large_image; //异步请求数据 listener = new ExchangeDataRequestListener() { @Override public void dataReceived(int status, List<Promoter> data) { if(status == 1 && data != null){//成功获取数据 //将数据封装到自定义的View上。 packagePromoter(data,root,service); } } }; service.requestDataAsyn(mContext, listener, true); return root; } public void paging(){ service.requestDataAsyn(mContext, listener, false); } protected void packagePromoter(List<Promoter> data, View root, final ExchangeDataService service) { for(int i=0;i<data.size() && i<3;i++){ final Promoter promoter = data.get(i); //××××××× 选择合适的View START××××××× ViewGroup parent = null; switch (i) { case 0: parent = (ViewGroup) root.findViewById(R.id.promoter_main); break; case 1: parent = (ViewGroup) root.findViewById(R.id.promoter_left); break; case 2: parent = (ViewGroup) root.findViewById(R.id.promoter_right); break; } //××××××× 选择合适的View END××××××× final ImageView imv = (ImageView)parent.findViewById(R.id.imagev); TextView adTv = (TextView) parent.findViewById(R.id.adword); TextView titleTv = (TextView) parent.findViewById(R.id.title); //设置标题 if(titleTv != null) titleTv.setText(promoter.title); //加载图片 if(!TextUtils.isEmpty(promoter.img)) new ImageLoadTask(promoter.img) { @Override public void onRecived(Drawable result) { if(result != null) imv.setImageDrawable(result); } }.execute(); //设置广告语 adTv.setText(promoter.ad_words); //发送展示report(必须) service.reportImpression(promoter); //添加广告点击事件 root.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { service.clickOnPromoter(promoter); } }); } } } }