android之Fragment-ListFragment的实践(三)
16lz
2021-01-23
先看效果图吧:
布局activity_main:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <fragment android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/frag1" android:name="com.example.listfragmentapp.FirstFragment"/> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" android:id="@+id/layout" android:background="#ff5433"> </FrameLayout> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" android:id="@+id/third" android:background="#567812"> </FrameLayout></LinearLayout>
MainActivity什么东西都没写
FirstFragment:
package com.example.listfragmentapp;import android.app.Fragment;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;public class FirstFragment extends Fragment{private FragmentManager fm; @Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view=inflater.inflate(R.layout.first_frag, container, false);Button btn=(Button) view.findViewById(R.id.btn);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//第一步:获取FragmentManger对象fm=getFragmentManager();//第二步:开启事务FragmentTransaction ft=fm.beginTransaction();//第三步:操作Fragment(添加,替换,删除) //第三个参数标签名,起到标识作用SecondTest fragment=new SecondTest();ft.add(R.id.layout,fragment,"second");ft.addToBackStack("second");//第四步:提交事务ft.commit();}});return view;}}SecondTest继承了ListFragment
package com.example.listfragmentapp;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.app.ListFragment;import android.os.Bundle;import android.text.Editable.Factory;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class SecondTest extends ListFragment{ThirdFragment fragment;TextView tv;private FragmentManager fm;@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);View thirdFragment=getActivity().findViewById(R.layout.two_frag);fm=getFragmentManager();String[] data=new String[30];for(int i=0;i<20;i++)data[i]="hello"+i;ArrayAdapter<String>adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,data);setListAdapter(adapter);}@Overridepublic void onListItemClick(ListView l, View v, int position, long id) {// TODO Auto-generated method stubsuper.onListItemClick(l, v, position, id);Toast.makeText(getActivity(), "您选择了:"+l.getAdapter().getItem(position), 0).show();fm=getFragmentManager();FragmentTransaction ft = fm.beginTransaction();ThirdFragment frag=new ThirdFragment();Bundle bundle=new Bundle();String msg=(String) l.getAdapter().getItem(position);bundle.putString("111", msg);frag.setArguments(bundle);ft.replace(R.id.third,frag,"ddd");ft.addToBackStack("ddd");ft.commit();}}
ThirdFragment:
package com.example.listfragmentapp;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class ThirdFragment extends Fragment{private TextView tv;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view=inflater.inflate(R.layout.third_frag, container, false);tv=(TextView)view.findViewById(R.id.tv);Bundle bundle=getArguments();String msg=bundle.getString("111");tv.setText(msg);return view;}}有想要源码的可以:
源码下载链接
更多相关文章
- 直播源码用Glide框架缓存压缩图片做一个网络图片查看器
- android使用Canvas画柱状图和饼图源码
- android中的贪吃蛇源码
- Android IntentService用法和源码分析
- [置顶] android Listview分批加载+自动加载(附源码下载)
- android上文件上传至tomcat服务器源码
- 地图引擎rmaps android 源码(rmaps source code)
- android 浏览普通彩信列表demo 核心源码
- Android Studio导入Android平台源码