首页注意网络和添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
android:name=".app.AppCont"
依赖
implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
将ListView类和布局和所需图片插入
填写多个fragment
主页面布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
>
<FrameLayout
android:id="@+id/main_container_content"
android:layout_width="match_parent"
android:background="@color/app_w"
android:layout_height="0dp"
android:layout_weight="1"
/>
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/radioButton0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:textColor="@drawable/one"
android:drawableTop="@drawable/one"
android:textSize="15sp"
android:text="@string/app_zy" />
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="@drawable/two"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:drawableTop="@drawable/two"
android:textSize="15sp"
android:text="@string/app_gh" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@drawable/three"
android:button="@null"
android:gravity="center"
android:drawableTop="@drawable/three"
android:textSize="15sp"
android:text="@string/app_ys" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="0dp"
android:textColor="@drawable/four"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:drawableTop="@drawable/four"
android:textSize="15sp"
android:text="@string/app_sj" />
</RadioGroup>
</LinearLayout>
<LinearLayout
android:id="@+id/left"
android:layout_width="200dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start"
android:background="@mipmap/www"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/tx"
/>
<TextView
android:layout_marginTop="12dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dp"
android:text="@string/app_mn"
/>
</LinearLayout>
<Button
android:layout_marginTop="15dp"
android:id="@+id/dd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_homea"/>
<Button
android:id="@+id/ss"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_xsp"/>
<Button
android:id="@+id/kk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_my"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
MainActivity
package com.beiw.tzk;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioGroup;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private RadioGroup radio;
private ZyFragment zyFragment;
private KxFragment kxFragment;
private HqFragment hqFragment;
private MyFragment myFragment;
private List<Fragment> fragments;
private FragmentManager fragmentManager;
private FragmentTransaction transition;
private ViewPager pager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
radio = (RadioGroup) findViewById(R.id.radioGroup);
//fragment 管理器
fragmentManager = getSupportFragmentManager();
fragments = new ArrayList<>();
// 添加首页
radio.check(R.id.radioGroup);
zyFragment = new ZyFragment();
fragments.add(zyFragment);
hideOthersFragment(zyFragment, true);
radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
// 首页
case R.id.radioButton0:
hideOthersFragment(zyFragment, false);
break;
//干货
case R.id.radioButton1:
if (kxFragment == null) {
kxFragment = new KxFragment();
fragments.add(kxFragment);
hideOthersFragment(kxFragment, true);
} else {
hideOthersFragment(kxFragment, false);
}
break;
// 影视
case R.id.radioButton2:
if (hqFragment == null) {
hqFragment = new HqFragment();
fragments.add(hqFragment);
hideOthersFragment(hqFragment, true);
} else {
hideOthersFragment(hqFragment, false);
}
break;
// 书籍
case R.id.radioButton3:
if (myFragment == null) {
myFragment = new MyFragment();
fragments.add(myFragment);
hideOthersFragment(myFragment, true);
} else {
hideOthersFragment(myFragment, false);
}
break;
default:
break;
}
}
});
}
/**
* 动态显示Fragment
*
* @param showFragment 要增加的fragment
* @param add true:增加fragment;false:切换fragment
*/
private void hideOthersFragment(Fragment showFragment, boolean add) {
transition = fragmentManager.beginTransaction();
if (add)
transition.add(R.id.main_container_content,showFragment);
for (Fragment fragment : fragments) {
if (showFragment.equals(fragment)) {
transition.show(fragment);
} else {
transition.hide(fragment);
}
}
transition.commit();
}
}
适配器
package com.beiw.tzk.adpter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.beiw.tzk.R;
import com.beiw.tzk.bean.Bean;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class MySetAdpter extends BaseAdapter{
final int left=0;
final int right=1;
final int center=2;
public MySetAdpter(Context context, List<Bean.ResultBean.DataBean> data) {
this.context = context;
this.mlist = data;
}
Context context;
List<Bean.ResultBean.DataBean> mlist;
@Override
public int getCount() {
return mlist.size();
}
@Override
public Object getItem(int position) {
return mlist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
switch (position){
case 0:
return left;
case 1:
return right;
case 2:
return center;
}
return position % 2;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
MySetAdpter.ViewHolder vh= new MySetAdpter.ViewHolder();
if (convertView==null){
switch (type){
case left:
convertView=View.inflate(context, R.layout.yibuju,null);
vh.t1=convertView.findViewById(R.id.t1);
convertView.setTag(vh);
break;
case right:
convertView=View.inflate(context, R.layout.erbuju,null);
vh.t2=convertView.findViewById(R.id.t2);
vh.i1=convertView.findViewById(R.id.i1);
vh.i2=convertView.findViewById(R.id.i2);
vh.i3=convertView.findViewById(R.id.i3);
convertView.setTag(vh);
break;
case center:
convertView=View.inflate(context, R.layout.sanbuju,null);
vh.t3=convertView.findViewById(R.id.t3);
vh.i4=convertView.findViewById(R.id.i4);
convertView.setTag(vh);
break;
}
}else {
vh= (ViewHolder) convertView.getTag();
}
switch (type){
case 0:
vh.t1.setText(mlist.get(position).getAuthor_name());
return convertView;
case 1:
vh.t2.setText(mlist.get(position).getTitle());
ImageLoader.getInstance().displayImage(mlist.get(position).getThumbnail_pic_s02(),vh.i1);
ImageLoader.getInstance().displayImage(mlist.get(position).getThumbnail_pic_s03(),vh.i2);
ImageLoader.getInstance().displayImage(mlist.get(position).getThumbnail_pic_s(),vh.i3);
return convertView;
case 2:
vh.t3.setText(mlist.get(position).getAuthor_name());
ImageLoader.getInstance().displayImage(mlist.get(position).getThumbnail_pic_s02(),vh.i4);
return convertView;
}
return convertView;
}
class ViewHolder{
TextView t1,t2,t3;
ImageView i1,i2,i3,i4;
}
}
图片加载
package com.beiw.tzk.app;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
public class AppCont extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build();
ImageLoader.getInstance().init(build);
}
}
BaseFragment
package com.beiw.tzk.base;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public abstract class BaseFragment extends Fragment {
public View mView;
public Context mActivity;
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.mActivity=context;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//mView = inflater.in
initView();
return mView;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
}
public abstract View initView();
public abstract void initData();
}
Bean类
封装的网络类和网路获取接口类
package com.beiw.tzk.homeWork;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class ConU {
Context context;
public ConU(Context context) {
this.context = context;
}
public boolean getNet(){
//初始化网络状态
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//网络类型
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
return networkInfo.isConnected();
}
}
package com.beiw.tzk.homeWork;
import android.content.Context;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpC {
public static String getHttp(Context context,String url,String mRam){
String messages = "";
//String url = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=" + uri + "";
try {
URL murl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) murl.openConnection();
connection.setRequestMethod(mRam);
connection.setConnectTimeout(5 * 1000);
connection.setReadTimeout(5 * 1000);
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
String len = "";
while ((len = reader.readLine()) != null) {
messages += len;
}
} catch (Exception e) {
e.printStackTrace();
}
return messages;
}
}
package com.beiw.tzk.homeWork;
import android.content.Context;
import android.os.AsyncTask;
public class MyTask<T> extends AsyncTask<T,T,String> {
String url;
Context context;
String mRam;
private TaskListeners taskListeners;
public MyTask setTaskListener(TaskListeners taskListeners) {
this.taskListeners = taskListeners;
return this;
}
public MyTask(String url, Context context, String mRam) {
this.url = url;
this.context = context;
this.mRam = mRam;
}
@Override
protected String doInBackground(T... ts) {
return HttpC.getHttp(context,url,mRam);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s!=null){
//
taskListeners.result(s);
}
}
//定义接口
public interface TaskListeners{
void result(String t);
}
}
主页显示的视图
package com.beiw.tzk;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import com.beiw.tzk.base.BaseFragment;
import com.beiw.tzk.frag.Frag01;
import com.beiw.tzk.frag.Frag02;
import com.beiw.tzk.frag.Frag03;
import com.beiw.tzk.frag.Frag04;
import com.beiw.tzk.frag.Frag05;
import java.util.ArrayList;
public class ZyFragment extends Fragment {
private ViewPager page;
private RadioGroup radi;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_zy_fragment,container,false);
//找到组件
page = view.findViewById(R.id.pager);
radi = view.findViewById(R.id.radioGroup);
//添加数据
final ArrayList<Fragment> list = new ArrayList<>();
Frag01 frag01 = new Frag01();
Frag02 frag02 = new Frag02();
Frag03 frag03 = new Frag03();
Frag04 frag04 = new Frag04();
Frag05 frag05 = new Frag05();
list.add(frag01);
list.add(frag02);
list.add(frag03);
list.add(frag04);
list.add(frag05);
//适配器
page.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
//默认选中
radi.check(radi.getChildAt(0).getId());
//点击切换
radi.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.radioButton0:
page.setCurrentItem(0);
break;
case R.id.radioButton1:
page.setCurrentItem(1);
break;
case R.id.radioButton2:
page.setCurrentItem(2);
break;
case R.id.radioButton3:
page.setCurrentItem(3);
break;
case R.id.radioButton4:
page.setCurrentItem(4);
break;
}
}
});
//滑动监听
page.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
radi.check(radi.getChildAt(i).getId());
page.setCurrentItem(i);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
return view;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="#fff"
android:orientation="vertical"
tools:context=".ZyFragment">
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/radioButton0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:textColor="@drawable/one"
android:textSize="15sp"
android:text="@string/app_yw" />
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="@drawable/two"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:textSize="15sp"
android:text="@string/app_sd" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@drawable/three"
android:button="@null"
android:gravity="center"
android:textSize="15sp"
android:text="@string/app_kp" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="0dp"
android:textColor="@drawable/four"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:textSize="15sp"
android:text="@string/app_xy" />
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="0dp"
android:textColor="@drawable/five"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:textSize="15sp"
android:text="@string/app_dy" />
</RadioGroup>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
></android.support.v4.view.ViewPager>
</LinearLayout>
展示视图的界面
package com.beiw.tzk.frag;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.beiw.tzk.R;
import com.beiw.tzk.adpter.MySetAdpter;
import com.beiw.tzk.bean.Bean;
import com.beiw.tzk.homeWork.ConU;
import com.beiw.tzk.homeWork.MyTask;
import com.beiw.tzk.xlistview.XListView;
import com.google.gson.Gson;
import java.util.List;
public class Frag02 extends Fragment {
private MySetAdpter setAdpter;
private View view;
private XListView mls;
String url="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=tt";
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.frag02,container,false);
mls = view.findViewById(R.id.mls);
new ConU(getActivity()).getNet();
if (new ConU(getActivity()).getNet()){
Toast.makeText(getActivity(),"网络已连接",Toast.LENGTH_LONG).show();
init();
}else{
Toast.makeText(getActivity(),"网络不可用",Toast.LENGTH_LONG).show();
}
return view;
}
private void init() {
new MyTask<String>(url,getActivity(),"GET").setTaskListener(new MyTask.TaskListeners() {
@Override
public void result(String t) {
if (t!=null){
Gson gson = new Gson();
Bean bean = gson.fromJson(t, Bean.class);
final List<Bean.ResultBean.DataBean> data = bean.getResult().getData();
setAdpter = new MySetAdpter(getActivity(), data);
mls.setAdapter(setAdpter);
}
}
}).execute();
}
}
XListView布局
<?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:background="#0f0"
>
<com.beiw.tzk.xlistview.XListView
android:id="@+id/mls"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.beiw.tzk.xlistview.XListView>
</LinearLayout>
<?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">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/t1"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="18dp"
android:id="@+id/t2"
android:text="字体"
/>
<ImageView
android:id="@+id/i1"
android:layout_marginLeft="20dp"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="16dp"
android:layout_marginTop="54dp"
app:srcCompat="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/i2"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginLeft="20dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="133dp"
android:layout_marginTop="56dp"
app:srcCompat="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/i3"
android:layout_width="80dp"
android:layout_marginLeft="20dp"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="56dp"
android:layout_marginEnd="72dp"
app:srcCompat="@mipmap/ic_launcher" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="25dp"
android:id="@+id/t3"
android:text="字体"
/>
<ImageView
android:id="@+id/i4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="16dp"
android:layout_marginTop="54dp"
app:srcCompat="@mipmap/ic_launcher" />
</RelativeLayout>