//Activity布局
xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.skn.conan_lianxi00.MainActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/ll" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" > <Button android:id="@+id/b1" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="首页" android:onClick="b1" android:textSize="18dp" /> <Button android:id="@+id/b2" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="行情" android:onClick="b2" android:textSize="18dp" /> <Button android:id="@+id/b3" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="资讯" android:onClick="b3" android:textSize="18dp" /> LinearLayout> <FrameLayout android:id="@+id/fl" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/ll" >FrameLayout> RelativeLayout> <LinearLayout android:layout_width="300dp" android:layout_height="match_parent" android:orientation="vertical" android:layout_gravity="left" android:background="#5cbbf4" > <ImageView android:layout_width="150dp" android:layout_height="150dp" android:src="@drawable/qwe" android:layout_gravity="center_horizontal" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="30dp" android:text="我" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="30dp" android:text="是" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="30dp" android:text="侧" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="30dp" android:text="滑" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="30dp" android:text="栏" /> LinearLayout>
android.support.v4.widget.DrawerLayout>
//Activity代码
package com.bwie.skn.conan_lianxi00; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; import com.bwie.skn.conan_lianxi00.feagment.Fragment1; import com.bwie.skn.conan_lianxi00.feagment.Fragment2; import com.bwie.skn.conan_lianxi00.feagment.Fragment3; public class MainActivity extends AppCompatActivity { private FrameLayout fl; private Button b1,b2,b3; private Fragment1 fragment1; private Fragment2 fragment2; private Fragment3 fragment3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initfragment(); } private void initView() { b1 = (Button) findViewById(R.id.b1); b2 = (Button) findViewById(R.id.b2); b3 = (Button) findViewById(R.id.b3); b1.setTextColor(Color.RED); } private void initfragment() { fragment1 = new Fragment1(); fragment2 = new Fragment2(); fragment3 = new Fragment3(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment1).commit(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment2).commit(); getSupportFragmentManager().beginTransaction().add(R.id.fl,fragment3).commit(); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); getSupportFragmentManager().beginTransaction().show(fragment1).commit(); } public void b1(View view){ b1.setTextColor(Color.RED); b2.setTextColor(Color.BLACK); b3.setTextColor(Color.BLACK); getSupportFragmentManager().beginTransaction().show(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); } public void b2(View view){ b1.setTextColor(Color.BLACK); b2.setTextColor(Color.RED); b3.setTextColor(Color.BLACK); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().show(fragment2).commit(); getSupportFragmentManager().beginTransaction().hide(fragment3).commit(); } public void b3(View view){ b1.setTextColor(Color.BLACK); b2.setTextColor(Color.BLACK); b3.setTextColor(Color.RED); getSupportFragmentManager().beginTransaction().hide(fragment1).commit(); getSupportFragmentManager().beginTransaction().hide(fragment2).commit(); getSupportFragmentManager().beginTransaction().show(fragment3).commit(); } }
//Fragment布局
xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <HorizontalScrollView android:id="@+id/hsv" android:layout_width="match_parent" android:layout_height="40dp"> <LinearLayout android:id="@+id/hll" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > LinearLayout> HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/hvp" android:layout_width="match_parent" android:layout_height="match_parent">android.support.v4.view.ViewPager> LinearLayout>
//Fragment代码
package com.bwie.skn.conan_lianxi00.feagment; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.Nullable; 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.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.HorizontalScrollView; import android.widget.LinearLayout; import android.widget.TextView; import com.bwie.skn.conan_lianxi00.R; import java.util.ArrayList; import java.util.List; /** * author:Created by WangZhiQiang on 2017/10/11. */ public class Fragment3 extends Fragment{ private View view; private HorizontalScrollView hsv; private LinearLayout hll; private ViewPager hvp; private List<TextView> textlist = new ArrayList<>(); final String[] titles = new String[]{"数据新闻","快讯","头条","精编广告","美股","港股","基金","理财"}; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment3,container,false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initView(); } private void initView() { hsv =(HorizontalScrollView) view.findViewById(R.id.hsv); hll =(LinearLayout) view.findViewById(R.id.hll); hvp =(ViewPager) view.findViewById(R.id.hvp); for(int i=0;i<titles.length;i++){ TextView textView = new TextView(getActivity()); textView.setText(titles[i]); textView.setTextSize(18); textView.setWidth(150); textView.setId(i+1000); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int id = view.getId(); hvp.setCurrentItem(id-1000); } }); if(i==0){ textView.setTextColor(Color.RED); }else{ textView.setTextColor(Color.BLACK); } LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(20,10,20,10); //添加到布局 hll.addView(textView,layoutParams); //添加到集合 textlist.add(textView); } hvp.setAdapter(new MAdapter(getActivity().getSupportFragmentManager())); hvp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int i=0;i<textlist.size();i++){ if(position==i){ textlist.get(i).setTextColor(Color.RED); }else{ textlist.get(i).setTextColor(Color.BLACK); } } TextView textView = textlist.get(position); int i = textView.getWidth()+10; hsv.scrollTo(i*position,0); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } class MAdapter extends FragmentPagerAdapter{ public MAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { //http://mnews.gw.com.cn/wap/data/news/分类标识/page_页数.json String[] title = new String[]{"xbsjxw","txs","toutiao","news/mobile/jbgg","news/mobile/mgxw","news/mobile/ggxw","news/mobile/jjxw","news/mobile/lcxw"}; return Fragment_zx.getinstans("http://mnews.gw.com.cn/wap/data/news/"+title[position]+"/page_"); } @Override public int getCount() { return textlist.size(); } } }
//viewpager——Fragment布局
xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.bawei.wzq.wzlibrary.view.XListView android:id="@+id/xlv" android:layout_width="match_parent" android:layout_height="match_parent" >com.bawei.wzq.wzlibrary.view.XListView> LinearLayout>
//viewpaget_Fragment代码
package com.bwie.skn.conan_lianxi00.feagment; 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.TextView; import com.bawei.wzq.wzlibrary.view.XListView; import com.bwie.skn.conan_lianxi00.R; import com.bwie.skn.conan_lianxi00.bean.LvBean; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; /** * author:Created by WangZhiQiang on 2017/10/11. */ //http://news.xinhuanet.com/politics/2017-09/30/1121752088_15067520678551n.jpg public class Fragment_zx extends Fragment implements XListView.IXListViewListener{ View view; private XListView xlv; private List<LvBean> list = new ArrayList<>(); private MAdapter adapter; private String title; private int n=1; private DisplayImageOptions options; public static Fragment_zx getinstans(String title){ Fragment_zx fragment_zx = new Fragment_zx(); Bundle bundle = new Bundle(); bundle.putString("title",title); fragment_zx.setArguments(bundle); return fragment_zx; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_zx,container,false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //sd卡 options = new DisplayImageOptions.Builder() .cacheOnDisk(true) //sd卡 .cacheInMemory(true) .build(); //接收路径 Bundle arguments = getArguments(); title = arguments.getString("title"); //初始化控件 xlv =(XListView) view.findViewById(R.id.xlv); //必须写 xlv.setPullLoadEnable(true); xlv.setXListViewListener(this); Log.e("Conan", title +"1.json"); adapter = new MAdapter(); xlv.setAdapter(adapter); new MAsyncTask().execute(title +"1.json"); } //网络获取 class MAsyncTask extends AsyncTask<String,Void,String>{ private StringBuilder builder; @Override protected String doInBackground(String... strings) { try { //获取url URL url = new URL(strings[0]); //请求网络 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int code = urlConnection.getResponseCode(); //判断是否返回成功 if(code==200){ //获取网络信息 InputStream inputStream = urlConnection.getInputStream(); BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String s = ""; //拼接 while((s=bf.readLine())!=null){ builder.append(s); } } } catch (Exception e) { e.printStackTrace(); } return builder.toString(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.e("Conan",s+"+-+-+-+-+-+-+-+-ss"); try { JSONArray array = new JSONArray(s); JSONObject object = array.optJSONObject(0); JSONArray array2 = object.optJSONArray("data"); for(int i=0;i<array2.length();i++){ String titleJson = array2.optJSONObject(i).optString("title"); String summaryJson = array2.optJSONObject(i).optString("summary"); String imgJson = array2.optJSONObject(i).optString("img"); if (imgJson.equals("")){ list.add(new LvBean(titleJson,summaryJson,"http://news.xinhuanet.com/politics/2017-09/30/1121752088_15067520678551n.jpg")); }else{ list.add(new LvBean(titleJson,summaryJson,imgJson)); } } adapter.notifyDataSetChanged(); } catch (JSONException e) { e.printStackTrace(); } } } //适配器 class MAdapter 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 ViewHodler{ TextView title; TextView summary; ImageView img; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); switch(type){ case 0: ViewHodler vh; if (view==null){ view = View.inflate(getActivity(),R.layout.lv_item1_layout,null); vh = new ViewHodler(); vh.title =(TextView) view.findViewById(R.id.title); vh.summary =(TextView) view.findViewById(R.id.summary); vh.img = (ImageView) view.findViewById(R.id.img); view.setTag(vh); }else{ vh = (ViewHodler) view.getTag(); } vh.title.setText(list.get(i).getTitle()); vh.summary.setText(list.get(i).getSummary()); ImageLoader.getInstance().displayImage(list.get(i).getImg(),vh.img,options); break; case 1: ViewHodler vh1; if (view==null){ view = View.inflate(getActivity(),R.layout.lv_item2_layout,null); vh1 = new ViewHodler(); vh1.title =(TextView) view.findViewById(R.id.title); vh1.summary =(TextView) view.findViewById(R.id.summary); vh1.img = (ImageView) view.findViewById(R.id.img); view.setTag(vh1); }else{ vh1 = (ViewHodler) view.getTag(); } vh1.title.setText(list.get(i).getTitle()); vh1.summary.setText(list.get(i).getSummary()); ImageLoader.getInstance().displayImage(list.get(i).getImg(),vh1.img,options); break; } return view; } @Override public int getItemViewType(int position) { if (position%2==0){ return 0; }else{ return 1; } } @Override public int getViewTypeCount() { return 2; } } public void onLoad(){ xlv.stopRefresh(); xlv.stopLoadMore(); xlv.setRefreshTime("刚刚"); } //下拉刷新 @Override public void onRefresh() { list.clear(); new MAsyncTask().execute(title+"1.json"); onLoad(); } @Override public void onLoadMore() { n++; new MAsyncTask().execute(title+n+".json"); onLoad(); } }