Fragment之间传值(第三周周考)
2017-04-23 21:00
162 查看
需要加网络权限
<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> 1909fright.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;@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Nullable@Overridepublic 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;@Overridepublic 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);}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic 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;@Overridepublic int getCount() {return 0;}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic 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();}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic 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() {}@Overridepublic 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 {@Overridepublic void onCreate() {super.onCreate();x.Ext.init(this);x.Ext.setDebug(false);}}
相关文章推荐
- Fragment之间传值CallBack(MainActivity)
- Fragment之间传值用接口回掉
- Android开发-Fragment之间传值-2-AndroidStudio
- fragment与activity之间的回调,用于数据更新操作(是fragment向activity里传值)
- [置顶] 如何在同一个Activity中的Fragment与Fragment之间传值
- Android开发-Fragment之间传值-2-AndroidStudio
- Activity和Fragment之间相互传值和调用方法
- AndJump --- Android进阶,注解在Activity与Fragment之间传值
- 外部Activity和fragment之间的切换,传值
- Fragment与Activityz之间的传值
- Android Fragment传递参数_Fragment之间传值的两种方法
- android中fragment之间传值
- Android 关于Fragment与Activity之间传值
- ANDROID FRAGMENT传递参数_FRAGMENT之间传值的两种方法
- DialogFragment与Fragment之间互相传值
- 通过bundle对象实现Fragment之间的传值
- ANDROID安卓activity与fragment,activity之间互相传值(一)
- Android笔记--简单的Fragment和Activity的之间的数据交互(传值)
- Fragment与Activity之间传值,Fragment与Fragment传值以及对commit的理解
- Fragment系列解析之三---Fragment和Fragment、Activity之间传值