Fragment之间传值(第三周周考)

来源:互联网 发布:nicelabel 数据库 编辑:程序博客网 时间:2024/06/05 20:50

需要加网络权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

1:布局文件

activity_main.xml

<LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"   android:orientation="horizontal">    <LinearLayout        android:orientation="horizontal"        android:layout_width="150dp"        android:layout_height="match_parent"        android:id="@+id/left"/>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/right"/></LinearLayout>
let.xml

<?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"    >    <ListView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/lv_left"        ></ListView></LinearLayout>
right.xml

<?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">    <ListView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/lv_right"        ></ListView></LinearLayout>
left_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="match_parent"              android:layout_height="match_parent">  <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:id="@+id/left_text"      android:text="dwd"      /></LinearLayout>
right_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="match_parent"              android:layout_height="match_parent">    <LinearLayout        android:layout_margin="20dp"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        >    <LinearLayout        android:layout_weight="1"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:orientation="vertical"        >        <TextView            android:padding="10dp"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="fwfwf"            android:id="@+id/text1"            />        <TextView            android:padding="10dp"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="fwfwf"            android:id="@+id/text22"            />    </LinearLayout>    <ImageView        android:layout_weight="1"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:id="@+id/image22"        android:src="@mipmap/ic_launcher"        />    </LinearLayout></LinearLayout>
2:代码
MainActivity
package com.example.demo_sanzhou20170422;import android.app.ProgressDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.provider.Settings;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import fragment.Fragment_left;public class MainActivity extends AppCompatActivity {    Fragment_left mFragment_left = new Fragment_left();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        getSupportFragmentManager().beginTransaction().replace(R.id.left,mFragment_left,null).commit();        NetWorkStatus();    }    public boolean isNetworkConnected(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();            if (mNetworkInfo != null) {                return mNetworkInfo.isAvailable();            }        }        return false;    }    private boolean NetWorkStatus() {        boolean netSataus = isNetworkConnected(this);        if (!netSataus) {            AlertDialog.Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络")                    .setMessage("是否对网络进行设置?");            b.setPositiveButton("", new DialogInterface.OnClickListener() {                private ProgressDialog mDialog;                public void onClick(DialogInterface dialog, int whichButton) {                    if(android.os.Build.VERSION.SDK_INT > 10 ){                        //3.0以上打开设置界面                        startActivity(new Intent(Settings.ACTION_SETTINGS));                    }else                    {                        startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));                    }                }            }).setNeutralButton("", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int whichButton) {                    dialog.cancel();                }            }).show();        }        return netSataus;    }}
3左右fragment
Fragment_left
package fragment;import android.graphics.Color;import android.os.Bundle;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.AdapterView;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import com.example.demo_sanzhou20170422.R;import java.util.ArrayList;import java.util.List;import bean.ListBean;/** * Created by 1 on 2017/4/22. */public class Fragment_left extends Fragment {    //定义左边fragment数据    private List<ListBean> mList = new ArrayList<ListBean>();    private View mV;    private ListView mMlv_left;    private int location=0;    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        mV = inflater.inflate(R.layout.let, null);        //初始化控件        mMlv_left = (ListView) mV.findViewById(R.id.lv_left);        initData();//初始化数据        return mV;    }    private void initData() {      for(int x=0; x<10 ; x=x+2){       mList.add(new ListBean(x,x+1));      }      MyAdapter adapter = new MyAdapter();        mMlv_left.setAdapter(adapter);        mMlv_left.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {       if(position!=location){           //Color.TRANSPARENT透明色          parent.getChildAt(location).setBackgroundColor(Color.TRANSPARENT);       }       //设置选中item的颜色       view.setBackgroundColor(Color.RED);                //把数据传给右边的Fragment                Fragment_Right rf =new Fragment_Right();                Bundle bundle = new Bundle();                bundle.putInt("num1",mList.get(position).getNum1());                bundle.putInt("num2",mList.get(position).getNum2());                rf.setArguments(bundle);                getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.right,rf,null).commit();                //得到解析数据                rf.initData();                location=position;            }        });    }    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return mList.size();        }        @Override        public Object getItem(int position) {            return null;        }        @Override        public long getItemId(int position) {            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            if (convertView==null){                convertView=View.inflate(getActivity(),R.layout.left_item,null);                TextView text_left= (TextView) convertView.findViewById(R.id.left_text);                text_left.setText("条目"+mList.get(position).getNum1()+""+mList.get(position).getNum2());            }            return convertView;        }    }}

Fragment_Right
package fragment;import android.os.Bundle;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.ListView;import com.example.demo_sanzhou20170422.R;import com.google.gson.Gson;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.x;import java.util.ArrayList;import java.util.List;import adapter.RightAdapter;import bean.GsonBean;/** * Created by 1 on 2017/4/22. */public class Fragment_Right extends Fragment {    List<GsonBean.DatalistBean> list = new ArrayList<>();    private View mView_right;    private ListView mLv;    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        mView_right = inflater.inflate(R.layout.right, null);        mLv = (ListView) mView_right.findViewById(R.id.lv_right);        return mView_right;    }    public void initData(){        RequestParams params = new RequestParams("http://www.meirixue.com/api.php?c=list&a=index");        x.http().get(params, new Callback.CommonCallback<String>() {            private RightAdapter mAdapter;            @Override            public void onSuccess(String result) {                Gson gson = new Gson();                GsonBean bean = gson.fromJson(result, GsonBean.class);                List<GsonBean.DatalistBean> datalist = bean.getDatalist();                Bundle bundle = getArguments();                int num1 = bundle.getInt("num1");                int num2 = bundle.getInt("num2");                for (int i = 0; i <datalist.size() ; i++) {                    if (num1 == i || num2 == i) {                        list.add(datalist.get(i));                    }                }                RightAdapter mAdapter = new RightAdapter(getActivity(), list);                mLv.setAdapter(mAdapter);            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {            }        });}}
3:适配器
MyAdapter_left
 
package adapter;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;/** * Created by 1 on 2017/4/22. */public class MyAdapter_left extends BaseAdapter {    private Context context;    @Override    public int getCount() {        return 0;    }    @Override    public Object getItem(int position) {        return null;    }    @Override    public long getItemId(int position) {        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        return null;    }}
RightAdapter
package adapter;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.example.demo_sanzhou20170422.R;import org.xutils.image.ImageOptions;import org.xutils.x;import java.util.List;import bean.GsonBean;public class RightAdapter extends BaseAdapter {    private List<GsonBean.DatalistBean>list;    private Context context;    private ImageOptions options;    public RightAdapter(Context context, List<GsonBean.DatalistBean> list) {        this.context = context;        this.list = list;        options=new ImageOptions.Builder().setFadeIn(true).setLoadingDrawableId(R.mipmap.ic_launcher)                .setCrop(true).setSize(300,190).setUseMemCache(true).build();    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int position) {        return null;    }    @Override    public long getItemId(int position) {        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder  holder;        if (convertView==null){            convertView=View.inflate(context,R.layout.right_item,null);            holder=new ViewHolder();            holder.t1= (TextView) convertView.findViewById(R.id.text1);            holder.t2= (TextView) convertView.findViewById(R.id.text22);            holder.image= (ImageView) convertView.findViewById(R.id.image22);            convertView.setTag(holder);        }else {            holder= (ViewHolder) convertView.getTag();        }                holder.t1.setText(list.get(position).getCourse_name());                holder.t2.setText(list.get(position).getCourse_price());        x.image().bind(holder.image,list.get(position).getCourse_pic(),options);        return convertView;    }    class  ViewHolder{        TextView t1;        TextView t2;        ImageView image;    }}
bean文件:
ListBean
package bean;public class ListBean { private  int num1; private  int num2;    public ListBean(int num1, int num2) {        this.num1 = num1;        this.num2 = num2;    }    public ListBean() {    }    @Override    public String toString() {        return "ListBean{" +                "num1=" + num1 +                ", num2=" + num2 +                '}';    }    public int getNum1() {        return num1;    }    public void setNum1(int num1) {        this.num1 = num1;    }    public int getNum2() {        return num2;    }    public void setNum2(int num2) {        this.num2 = num2;    }}
GsonBean
package bean;import java.util.List;public class GsonBean  {    /**     * datalist : [{"cid":"5857","course_tname":"丁丁","course_name":"3DMAX效果图-实战篇(欧式二)","course_price":"20.00","course_pic":"http://img.dianfu.net/img/20170216/40799f98cfc235f2a2eb46837d5cff84.jpg","course_paycount":"0","school_name":"吉大教育"},{"cid":"1167","course_tname":"中公教育","course_name":"行测数量关系核心考点之行程问题1","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150914/1d132d22df1e8b5331ff960ff96f0158.jpg","course_paycount":"30","school_name":"中公教育"},{"cid":"1170","course_tname":"中公教育","course_name":"行测数量关系核心考点之行程问题2","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150914/92048cc02319aba296cdadf9140c6602.jpg","course_paycount":"41","school_name":"中公教育"},{"cid":"1173","course_tname":"中公教育","course_name":"行测数量关系核心考点之行程问题3","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150914/aaed07356bea4bc4e1a24b6164297f5d.jpg","course_paycount":"24","school_name":"中公教育"},{"cid":"1161","course_tname":"中公教育","course_name":"行测数量关系 核心考点之不定方程1","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150911/3e8af2128c1ead7f86e45797ae13f91a.jpg","course_paycount":"17","school_name":"中公教育"},{"cid":"1162","course_tname":"中公教育","course_name":"行测数量关系 核心考点之不定方程2","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150911/1623e1ea09471f3a7eef7c10d6fa6979.jpg","course_paycount":"33","school_name":"中公教育"},{"cid":"1163","course_tname":"中公教育","course_name":"行测数量关系 核心考点之不定方程3","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150911/7c86ea4816766dc04f491d5066a8a67c.jpg","course_paycount":"11","school_name":"中公教育"},{"cid":"1156","course_tname":"中公教育","course_name":"行测数量关系核心考点之数学运算必备知识1","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150911/7c3297250d255e59f781079b3e33db12.jpg","course_paycount":"21","school_name":"中公教育"},{"cid":"1146","course_tname":"中公教育","course_name":"行测数量关系核心考点之数学运算必备知识2","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150911/6f945dd193ef1ff8d2ae85b0ea7a725d.jpg","course_paycount":"32","school_name":"中公教育"},{"cid":"1149","course_tname":"中公教育","course_name":"行测数量关系核心考点之数学运算必备知识3","course_price":"0.00","course_pic":"http://img.dianfu.net/img/20150911/f5839810c1d9be265ccb8b29f11b206b.jpg","course_paycount":"34","school_name":"中公教育"}]     * count : 3819     * limit : 10     * curpage : 1     */    private int count;    private int limit;    private int curpage;    private List<DatalistBean> datalist;    public int getCount() {        return count;    }    public void setCount(int count) {        this.count = count;    }    public int getLimit() {        return limit;    }    public void setLimit(int limit) {        this.limit = limit;    }    public int getCurpage() {        return curpage;    }    public void setCurpage(int curpage) {        this.curpage = curpage;    }    public List<DatalistBean> getDatalist() {        return datalist;    }    public void setDatalist(List<DatalistBean> datalist) {        this.datalist = datalist;    }    public static class DatalistBean {        /**         * cid : 5857         * course_tname : 丁丁         * course_name : 3DMAX效果图-实战篇(欧式二)         * course_price : 20.00         * course_pic : http://img.dianfu.net/img/20170216/40799f98cfc235f2a2eb46837d5cff84.jpg         * course_paycount : 0         * school_name : 吉大教育         */        private String cid;        private String course_tname;        private String course_name;        private String course_price;        private String course_pic;        private String course_paycount;        private String school_name;        public String getCid() {            return cid;        }        public void setCid(String cid) {            this.cid = cid;        }        public String getCourse_tname() {            return course_tname;        }        public void setCourse_tname(String course_tname) {            this.course_tname = course_tname;        }        public String getCourse_name() {            return course_name;        }        public void setCourse_name(String course_name) {            this.course_name = course_name;        }        public String getCourse_price() {            return course_price;        }        public void setCourse_price(String course_price) {            this.course_price = course_price;        }        public String getCourse_pic() {            return course_pic;        }        public void setCourse_pic(String course_pic) {            this.course_pic = course_pic;        }        public String getCourse_paycount() {            return course_paycount;        }        public void setCourse_paycount(String course_paycount) {            this.course_paycount = course_paycount;        }        public String getSchool_name() {            return school_name;        }        public void setSchool_name(String school_name) {            this.school_name = school_name;        }    }}

//Myapp
package com.example.demo_sanzhou20170422;import android.app.Application;import org.xutils.x;/** * Created by 1 on 2017/4/23. */public class MyApp extends Application {    @Override    public void onCreate() {        super.onCreate();        x.Ext.init(this);        x.Ext.setDebug(false);    }}


0 0
原创粉丝点击