zonghe

来源:互联网 发布:拳皇苍龙知乎 编辑:程序博客网 时间:2024/06/06 13:16
package com.bwie.skn.lianxi0919;


import android.graphics.Color;
import android.os.Bundle;
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.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;


import static com.bwie.skn.lianxi0919.R.id.clv;


public class MainActivity extends AppCompatActivity {
    private ViewPager vp;
    private HorizontalScrollView hsv;
    private LinearLayout hll,cll;
    private ListView lv;
    private String[] titles = new String[]{"福利","Android","iOS","休息视频","拓展资源","前端","all"};
    private List<TextView> list;
    private MvpAdapter mvpAdapter;
    private DrawerLayout drawerLayout;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        FragmentManager supportFragmentManager = getSupportFragmentManager();
        mvpAdapter = new MvpAdapter(supportFragmentManager);
        vp.setAdapter(mvpAdapter);
        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                for(int i =0;i<list.size();i++){
                    if(position==i){
                        list.get(i).setTextColor(Color.RED);
                    }else{
                        list.get(i).setTextColor(Color.BLACK);
                    }
                }
                TextView textView = list.get(position);
                int width = textView.getWidth()+10;
                hsv.scrollTo(width*position,0);
            }


            @Override
            public void onPageSelected(int position) {


            }


            @Override
            public void onPageScrollStateChanged(int state) {


            }
        });
        lv.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,titles));
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                vp.setCurrentItem(i);
                Fragment1.getString("http://gank.io/api/data/"+ URLEncoder.encode(titles[i])+"/");
                drawerLayout.closeDrawers();
            }
        });




    }






    class MvpAdapter extends FragmentPagerAdapter{


        public MvpAdapter(FragmentManager fm) {
            super(fm);
        }


        @Override
        public Fragment getItem(int position) {
            return Fragment1.getString("http://gank.io/api/data/"+ URLEncoder.encode(titles[position])+"/");
        }


        @Override
        public int getCount() {
            return list.size();
        }
    }


    private void initView() {
        vp = (ViewPager) findViewById(R.id.hvp);
        hsv = (HorizontalScrollView) findViewById(R.id.hsv);
        hll = (LinearLayout) findViewById(R.id.hll);
        cll = (LinearLayout) findViewById(R.id.cll);
        lv = (ListView) findViewById(clv);
        drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        //创建集合存放textview
        list = new ArrayList<>();
        //创建textview
        for(int i=0;i<titles.length;i++){
            //创建Textview
            TextView textView = new TextView(MainActivity.this);
            textView.setText(titles[i]);
            textView.setTextSize(20);
            textView.setId(i+1000);
            //点击事件
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int id = view.getId();
                    vp.setCurrentItem(id-1000);
                }
            });
            //刚进入程序第一个为红色
            if(i==0){
                textView.setTextColor(Color.RED);
            }else{
                textView.setTextColor(Color.BLACK);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            params.setMargins(20,10,20,10);
            hll.addView(textView,params);
            //添加到集合
            list.add(textView);
        }
    }

}









import android.os.AsyncTask;
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.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.bawei.wzq.wzlibrary.utils.NetWorkUtil;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

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

public class Fragment1 extends Fragment{
    private View view;
    private PullToRefreshListView pullLv;
    private String url;
    private List<Strbean> list;
    private MpullAdapter mpullAdapter;
    private int i;


    public static Fragment1 getString(String urlStr){
        Fragment1 fragment1 = new Fragment1();
        Bundle bundle = new Bundle();
        bundle.putString("url",urlStr);
        fragment1.setArguments(bundle);
        return fragment1;
    }
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment1_pull,container,false);
        return view;
    }


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


        Bundle arguments = getArguments();
        url = arguments.getString("url");
        Log.e("11TAG--------",url+"10/1");
        pullLv =(PullToRefreshListView) view.findViewById(R.id.pullLv);
        pullLv.setMode(PullToRefreshBase.Mode.BOTH);


        list = new ArrayList<>();
        mpullAdapter = new MpullAdapter();
        pullLv.setAdapter(mpullAdapter);
        new MAsyncTask().execute(url+"10/1");
        pullLv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                list.clear();
                i=1;
                new MAsyncTask().execute(url+"10/1");
            }


            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                i++;
                new MAsyncTask().execute(url+"10/"+i);
            }
        });


    }
    class MAsyncTask extends AsyncTask<String,Void,String>{


        @Override
        protected String doInBackground(String... strings) {
            Log.e("22TAG---------------",strings[0]);
            String netString = new NetWorkUtil().getNetString(strings[0]);
            Log.e("33TAG---------------",netString);
            return netString;
          
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Log.e("sss-------------",s);
            try {
                JSONObject jsonObject = new JSONObject(s);
                JSONArray results = jsonObject.optJSONArray("results");
                for(int i=0;i<results.length();i++){
                    JSONArray images = results.optJSONObject(i).optJSONArray("images");
                    if(images!=null){
                        list.add(new Strbean((String)images.get(0),results.optJSONObject(i).optString("desc")));
                    }else{
                        String u = "http://img3.3lian.com/2013/s1/20/d/57.jpg";
                        list.add(new Strbean(u,results.optJSONObject(i).optString("desc")));
                    }
                }
                mpullAdapter.notifyDataSetChanged();
                pullLv.onRefreshComplete();
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }




    //适配器
    class MpullAdapter extends BaseAdapter{


        @Override
        public int getCount() {
            return list.size();
        }


        @Override
        public Object getItem(int i) {
            return list.get(i);
        }


        @Override
        public long getItemId(int i) {
            return i;
        }


        class ViewHowder{
            TextView tv;
            ImageView iv;
        }
        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            ViewHowder vh = null;
            if(view==null){
                view = View.inflate(getActivity(),R.layout.pull_item_layout,null);
                vh = new ViewHowder();
                vh.iv=(ImageView) view.findViewById(R.id.iv);
                vh.tv=(TextView) view.findViewById(R.id.tv);
                view.setTag(vh);
            }else{
                vh = (ViewHowder) view.getTag();
            }
            vh.tv.setText(list.get(i).getTv());
            ImageLoader.getInstance().displayImage(list.get(i).getImg(),vh.iv);
            return view;
        }
    }
}

原创粉丝点击