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

需要加网络权限

<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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值