Week2_Two

//侧滑页面
package com.bwie.w2.activity;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;

import com.bwie.w2.Frament.ChannelFrament;
import com.bwie.w2.R;
import com.bwie.w2.Utils.HttpUtils;
import com.bwie.w2.apdater.Allapdater;
import com.bwie.w2.bean.Allbean;
import com.bwie.w2.bean.ChannelBean;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class DrawableActivity extends AppCompatActivity {

        private ImageView image_show;
        private ImageView image_close;
        private DrawerLayout dl;
        private HttpUtils httpUtils;
        private TabLayout tab_layout;
        private ViewPager vp;
        private List<ChannelBean> titles=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_drawable);

        init();
        getimageshowOnClickListener();
        getaddDrawerListener();

        //创建数据
        titles=new ArrayList<>();
        titles.add(new ChannelBean("All","https://gank.io/api/data/all"));
        titles.add(new ChannelBean("Android","https://gank.io/api/data/Android"));
        titles.add(new ChannelBean("IOS","https://gank.io/api/data/iOS"));

        vp.setAdapter(new ChannelApdater(getSupportFragmentManager()));
        tab_layout.setupWithViewPager(vp);


    }

    //初始化方法
    private void init() {
        image_show = findViewById(R.id.image_show);
        image_close = findViewById(R.id.image_close);
        dl = findViewById(R.id.dl);
        tab_layout = findViewById(R.id.tablayout);
        vp = findViewById(R.id.vp);
    }

    //侧滑菜单
    private void getimageshowOnClickListener() {
        image_show.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                switch (v.getId()){

                    case R.id.image_show:
                        if(dl.isDrawerOpen(Gravity.START)){

                            dl.closeDrawer(Gravity.START);
                        }else{

                            dl.openDrawer(Gravity.START);
                        }
                        break;
                }
            }
        });
    }
    private void getaddDrawerListener() {
        dl.addDrawerListener(new DrawerLayout.DrawerListener() {


            @Override
            public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {

               //滑动过程中不断回调 slideOffset:0~1
                View content = dl.getChildAt(0);
                View view = drawerView;

                float scale = 1 - slideOffset;
                content.setTranslationX(view.getMeasuredWidth() * (1-scale));

            }

            @Override
            public void onDrawerOpened(@NonNull View drawerView) {

            }

            @Override
            public void onDrawerClosed(@NonNull View drawerView) {

            }

            @Override
            public void onDrawerStateChanged(int newState) {

            }
        });
    }


    private class ChannelApdater extends FragmentPagerAdapter {

        public ChannelApdater(FragmentManager fm) {

            super(fm);
        }



        @Override
        public Fragment getItem(int position) {

            return ChannelFrament.netInstance(titles.get(position).url);
        }

        @Override
        public int getCount() {

            return titles.size();
        }

        @Nullable
        @Override
        public CharSequence getPageTitle(int position){

            return titles.get(position).title;
        }
    }
}

 

//Frament页面

package com.bwie.w2.Frament;


import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.TextView;

import com.bwie.w2.R;
import com.bwie.w2.Utils.HttpUtils;
import com.bwie.w2.activity.DrawableActivity;
import com.bwie.w2.activity.WebActivty;
import com.bwie.w2.apdater.Allapdater;
import com.bwie.w2.bean.Allbean;
import com.bwie.w2.bean.ChannelResultBean;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

import xlistview.bawei.com.xlistviewlibrary.XListView;

/**
 * A simple {@link Fragment} subclass.
 */
public class ChannelFrament extends Fragment implements HttpUtils.NetCallback, XListView.IXListViewListener {


    private TextView  tv_title;
    private HttpUtils httpUtils;
    private  int page=1;
    private  final  int COUNT=10;
    private String s;
    private String counurl;
    private XListView xlistview;
    private Allapdater apdater;
    private List<ChannelResultBean.ResultsBean> results;

    public ChannelFrament() {
        // Required empty public constructor
    }

    public static Fragment netInstance(String s) {

        ChannelFrament channelFrament = new ChannelFrament();
        Bundle bundle = new Bundle();
        bundle.putString("title",s);

        channelFrament.setArguments(bundle);
        return channelFrament;
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_channel_frament, container, false);
        tv_title = inflate.findViewById(R.id.tv_title);
        xlistview = inflate.findViewById(R.id.xlistview);
        return inflate;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        //上拉加载 下拉刷新
        xlistview.setPullLoadEnable(true);
        xlistview.setPullRefreshEnable(true);
        xlistview.setXListViewListener(this);

        results = new ArrayList<>();
        apdater = new Allapdater(getActivity(), results);
        xlistview.setAdapter(this.apdater);

        xlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
              ChannelResultBean.ResultsBean item = (ChannelResultBean.ResultsBean) apdater.getItem(position);
                Intent intent = new Intent(getActivity(),WebActivty.class);
                intent.putExtra("url",item.getUrl());
                startActivity(intent);
            }
        });

        Bundle bundle = getArguments();
        String title = bundle.getString("title");
        tv_title.setText(title);
        /*
         * 回调接口
         * */
        s=getArguments().getString("title");
        httpUtils = HttpUtils.getInstance();
        counurl= s+"/"+ COUNT+"/";

        httpUtils.getServiceData(counurl+page,this);

    }

    @Override
    public void onsucces(String result) {

        Log.i("aaa",result+"ssss");

        Gson gson = new Gson();
        ChannelResultBean resultBean = gson.fromJson(result, ChannelResultBean.class);
     //   Log.i("bbb",results+"sss");

        if(page==1){
            //清空一下
            results.clear();
        }

        results.addAll(resultBean.getResults());
       apdater.notifyDataSetChanged();
        //停止刷新
      xlistview.stopRefresh();
      xlistview.stopLoadMore();
    /* xlistview.postDelayed(new Runnable() {
         @Override
         public void run() {
             xlistview.stopRefresh();
         }
     }, 1000);
     xlistview.postDelayed(new Runnable() {
         @Override
         public void run() {
             xlistview.stopLoadMore();
         }
     }, 1000);
*/

    }

    @Override
    public void onError(String errormge) {

    }

    @Override
    public void onRefresh() {
        page=1;
        httpUtils.getServiceData(counurl+page,this);
    }

    @Override
    public void onLoadMore() {

        page++;
        httpUtils.getServiceData(counurl+page,this);
    }
}

 

//WebView页面

package com.bwie.w2.activity;

import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

import com.bwie.w2.R;
import com.nostra13.universalimageloader.core.ImageLoader;

public class WebActivty extends AppCompatActivity {

    private WebView webView;
    private FrameLayout flProgress;
    private TextView tvPorgress;
    private ImageView ivImage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_activty);


        webView = findViewById(R.id.web_view);
        flProgress = findViewById(R.id.fl_progress);
        tvPorgress = findViewById(R.id.tv_progress);
        ivImage = findViewById(R.id.iv_image);


        webView.setVisibility(View.GONE);
        flProgress.setVisibility(View.GONE);
        ivImage.setVisibility(View.GONE);

        webView.setWebViewClient(new WebViewClient(){

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                flProgress.setVisibility(View.GONE);
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                flProgress.setVisibility(View.INVISIBLE);
            }
        });

        webView.setWebChromeClient(new WebChromeClient(){

            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);

                tvPorgress.setText(newProgress+"%");
            }
        });

        //读取url
        String url = getIntent().getStringExtra("url");
        //判断url是否为图片
        if(url.endsWith(".jpg")){

            ivImage.setVisibility(View.GONE);
            ImageLoader.getInstance().displayImage(url,ivImage);
        }else{
            webView.setVisibility(View.VISIBLE);
            webView.loadUrl(url);
        }
    }
}

 

//工具类

package com.bwie.w2.Utils;

import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.Log;

import com.bwie.w2.Frament.ChannelFrament;
import com.google.common.io.CharStreams;

import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

public class HttpUtils {
    private static final HttpUtils ourInstance = new HttpUtils();
    public static final String TAG = HttpUtils.class.getSimpleName();

    public static HttpUtils getInstance() {

        return ourInstance;
    }

    public HttpUtils() {

    }

    public void getServiceData(String s, NetCallback netCallback) {

        new LodaData(netCallback).execute(s);
    }

    /*
    *
    * 接口回调实现过程
    * 声明一个接口
    * 进行引用
    * */

    public interface NetCallback{

        void  onsucces(String result);

        void onError(String errormge);
    }



    //网络请求
   /* public void getServiceData(String s,NetCallback NetCallback){

       new  LodaData(NetCallback).execute(s);
    }*/

    //网络请求
    class LodaData extends AsyncTask<String,Void,String> {

        private NetCallback netCallback;

        public LodaData(NetCallback netCallback) {
            this.netCallback = netCallback;

        }

        //网络加载方法
        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url = new URL(strings[0]);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setReadTimeout(5000);
                connection.setConnectTimeout(5000);
                connection.setRequestMethod("GET");
                if (connection.getResponseCode() == HttpsURLConnection.HTTP_OK) {

                    return CharStreams.toString(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                }

            } catch (Exception e) {
                e.printStackTrace();
            }


            return null;
        }

      /*  @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Log.i(TAG, "s:" + s);
        }*/

        //成功之后返回的方法
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);

            if (netCallback != null) {

                if (TextUtils.isEmpty(s)) {

                    netCallback.onError("服务器没有响应");

                } else {
                    netCallback.onsucces(s);

                }
            }
        }
    }

}

 

 

 

 

 

SELECT * FROM (with t1 as ( SELECT`year`,`week`, targeting ,customersearchterm from amazon_ods.ad_sp_searchterm_delta_wk assdw WHERE shop = 'happytools' --店铺筛选 AND campaignname in (SELECT campaignname from amazon_ods.ad_sp_advertised_delta_wk asadw WHERE asin in ('B09ZKF58VV','B09ZKBGNNN ')) --asin筛选 AND year = 2023 AND campaignname not in (SELECT campaignname from amazon_ods.jianlou_campaigns jc WHERE shop = 'happytools') --剔除捡漏 AND campaignname not LIKE 'JL%' AND campaignname NOT LIKE '捡漏%' and campaignname NOT LIKE '0.1%' AND campaignname NOT LIKE 'ALL%' AND customersearchterm not like 'b0%' ) SELECT t1.*,t2.impression_share,t2.impression_rank,t2.impressions, if(t2.impression_share = 0, null,round(toFloat64((t2.impressions))/toFloat64((t2.impression_share)),2)) as "市场总曝光(估算)" from t1 left join (SELECT `year` , `week` ,customer_searchterm as customersearchterm,impression_rank ,impression_share, targeting ,matchtype ,impressions ,clicks ,spend ,sales ,orders ,shop from amazon_ods.ad_sp_impression_share_delta_wk asisdw WHERE shop = 'happytools' AND `year` = 2023)as t2 on t1.customersearchterm = t2.customersearchterm AND t1.`year` = t2.`year` AND t1.`week` = t2.`week` ORDER BY `week` desc,`市场总曝光(估算)` desc) AS t2 LEFT JOIN (select `year` ,`week` ,searchterm as customersearchterm,search_frequency_rank , concat(cast((one_click_share +two_click_share +three_click_share ) as varchar(12)),'%') as "点击占比", concat(cast((one_conversion_share+two_conversion_share+three_conversion_share) as varchar(12)),'%') as "转化占比" ,one_clicked_asin,two_clicked_asin,three_clicked_asin from amazon_ods.aba_searchterm_ca_delta_wk ascdw and `year` =year(now()) and `week` >=week(now())-8 ) AS t3 WHERE t2.customersearchterm =t3.customersearchterm AND t2.`year` = t3.`year` AND t2.`week` = t3.`week`
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值