您的位置:首页 > 编程语言 > Java开发

假装是一个成功的布局——3、java逻辑代码

2017-11-10 14:57 148 查看
MainActivity:
package com.bwei.my1108;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.RadioGroup;

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

public class MainActivity extends AppCompatActivity {
//定义变量
private List<Fragment> fragmentList = new ArrayList<Fragment>();
private RadioGroup rg;
private FragmentManager supportFragmentManager;
String TAG = "wzq";
private DrawerLayout drawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化组件
rg = (RadioGroup) findViewById(R.id.rg);
initFragment();
supportFragmentManager = getSupportFragmentManager();
supportFragmentManager.beginTransaction().add(R.id.fl, fragmentList.get(0)).commit();
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
switch (i) {
case R.id.rb1:
supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(0)).commit();
break;
case R.id.rb2:
supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(1)).commit();
break;
case R.id.rb3:
supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(2)).commit();
break;
case R.id.rb4:
supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(3)).commit();
break;

}
}
});
drawerLayout = (DrawerLayout) findViewById(R.id.drawer);
ImageView img = (ImageView) findViewById(R.id.img);

//  getActivity(). getSupportFragmentManager().beginTransaction().replace(R.id.f1,mFragment).commit();
//关闭drawer
drawerLayout.closeDrawer(img);
}

private void initFragment() {
F1 F1 = new F1();
F2 f2 = new F2();
F3 f3 = new F3();
F4 f4 =  new F4();

fragmentList.add(F1);
fragmentList.add(f2);
fragmentList.add(f3);
fragmentList.add(f4);
}
}
F1:
package com.bwei.my1108;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 java.util.ArrayList;/*** author:Created by WangZhiQiang on 2017/11/9.*/public class F1 extends Fragment{private ViewPager viewpager;private ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();/*  private FrameLayout frameLayout;private ListView lv;*/private ArrayList<String> lists;//只写加载布局和找到控件@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.f1, container, false);viewpager = view.findViewById(R.id.vp);return view;}/*** 写fragment的逻辑;* @param view* @param savedInstanceState*/@Overridepublic void onViewCreated(View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);initFragment();//fragment中嵌套子fragment要用getChildFragmentManager()//fragment中嵌套子fragment要用getChildFragmentManager()//fragment中嵌套子fragment要用getChildFragmentManager()viewpager.setAdapter(new MPagerAdapter(getChildFragmentManager()));}private void initFragment() {F01 f01 = new F01();F02 f02 = new F02();fragmentList.add(f01);fragmentList.add(f02);}private class MPagerAdapter extends FragmentPagerAdapter {public MPagerAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int position) {return fragmentList.get(position);}@Overridepublic int getCount() {return fragmentList.size();}}}
F2:
package com.bwei.my1108;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/*** author:Created by WangZhiQiang on 2017/11/8.*/public class F02 extends Fragment {private ViewPager viewPager;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.f02,container,false);viewPager = view.findViewById(R.id.vp);return view;}@Overridepublic void onViewCreated(View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);}}
F01:
package com.bwei.my1108;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.KeyEvent;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.bwie.xlistviewlibrary.View.XListView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.List;/*** author:Created by WangZhiQiang on 2017/11/8.*/public class F01 extends Fragment implements  XListView.IXListViewListener{public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";String urlBitmap = "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg";private XListView xlv;ArrayList<JavaBean.DataBean> dataBeanList = new ArrayList();private MAdapter adapter;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.f01, container, false);/** 下拉刷新,上拉加载 */xlv = (XListView) view.findViewById(R.id.xlv);// 这个listview是在这个layout里面return view;}@Overridepublic void onViewCreated(View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);xlv.setPullLoadEnable(true);// 设置让它上拉,FALSE为不让上拉,便不加载更多数据xlv.setXListViewListener(this);//直接调用asyncTask类请求网络,把url传进去//这行代码要在主线程调用;initdata();adapter = new MAdapter();xlv.setAdapter(adapter);}private void initdata() {new MAsyncTask().execute(urlString);}/**bea8* 泛型  第一个参数:传过来的url* 第二个参数 :进度* 第三个参数 :接口请求成功返回的东西(json,bitmap)*/private class MAsyncTask extends AsyncTask<String, Void, String> {/*** 这个方法在子线程,在这个方法里进行联网操作** @param strings 可变参数,底层是数组,里面放的是传过来的参数;* @return*/@Overrideprotected String doInBackground(String... strings) {String urlTemp = strings[0];//直接用工具类获取jsonString netJson = NetUtil.getNetJson(urlTemp);return netJson; //返回给(前台方法,主线程方法onPostExecute)}/*** 这个方法在主线程, 直接更新ui即可;** @param s s是doInBackground请求接口成功后返回的json*/@Overrideprotected void onPostExecute(String s) {super.onPostExecute(s);Log.e("wzq", "onPostExecute: " + s);//解析s,  直接给控件展示;Gson gson = new Gson();JavaBean bean = gson.fromJson(s,JavaBean.class);List<JavaBean.DataBean>  temp = (List<JavaBean.DataBean>) bean.getData();dataBeanList.addAll(temp);adapter.notifyDataSetChanged();}}private class MAdapter extends BaseAdapter {@Overridepublic int getCount() {Log.e("wzq", "getCount:" + dataBeanList.size());return dataBeanList.size();}@Overridepublic Object getItem(int i) {return dataBeanList.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {View view1 = View.inflate(getActivity(), R.layout.xlv_item, null);TextView tv = view1.findViewById(R.id.tv);ImageView img  = view1.findViewById(R.id.img);tv.setText(dataBeanList.get(i).getNews_title());//            iv.setImageBitmap("url");//调用显示图片ImageLoader instance = ImageLoader.getInstance();instance.displayImage(urlBitmap,img);return view1;}}// 关闭public void onLoad() {xlv.stopRefresh();xlv.stopLoadMore();xlv.setRefreshTime("刚刚");}//刷新@Overridepublic void onRefresh() {dataBeanList.clear();initdata();onLoad();}//加载更多@Overridepublic void onLoadMore() {//1--保留之前集合中的数据//2 把新数据添加到list中,更新适配器;initdata();onLoad();}public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {getActivity().finish();}return false;}}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: