Android之片段Fragment的实践(二)
2016-07-04 09:50
489 查看
先看效果图吧:
activity_main中:
ListFragment:
MainFragment:
MainActivity:
代码下载
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"> <FrameLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/layout"> </FrameLayout> <!-- 使用fragment静态加入Fragment --> <fragment android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/frag" android:name="com.example.fragmentapp.MainFragment"/> <fragment android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/list" android:name="com.example.fragmentapp.ListFragmentTest"/> </LinearLayout>
ListFragment:
package com.example.fragmentapp; import android.app.ListFragment; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; //ListFragment有默认的布局文件 public class ListFragmentTest extends ListFragment{ @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); //初始化数据 String[] data=new String[30]; for(int i=0;i<30;i++) data[i]="hello"+i; ArrayAdapter<String>adapter=new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,data); setListAdapter(adapter); } //点击列表项时被触发 @Override public void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); Toast.makeText(getActivity(), "点击了:"+l.getAdapter().getItem(position), 0).show(); } }
MainFragment:
package com.example.fragmentapp; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.Button; //主Fragment public class MainFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view=inflater.inflate(R.layout.main_fragment, container, false); //替换片段 Button btn1=(Button)view.findViewById(R.id.change); btn1.setOnClickListener(new OnClickListener() { //替换 @Override public void onClick(View v) { // TODO Auto-generated method stub //替换Fragment FragmentTransaction ft=getFragmentManager().beginTransaction(); SecondFragment fragment=new SecondFragment(); ft.replace(R.id.layout, fragment, "second"); //将该事务添加到回退桟中 ft.addToBackStack("second"); ft.commit(); } }); return view; } }
MainActivity:
package com.example.fragmentapp; import android.os.Bundle; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private FragmentManager fm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一步:获取FragmentManger对象 fm=getFragmentManager(); //第二步:开启事务 FragmentTransaction ft=fm.beginTransaction(); //第三步:操作Fragment(添加,替换,删除) //第三个参数标签名,起到标识作用 FirstFragment fragment=new FirstFragment(); ft.add(R.id.layout,fragment,"first"); ft.addToBackStack("first"); //第四步:提交事务 ft.commit(); //删除片段 Button btn2=(Button) findViewById(R.id.remove); btn2.setOnClickListener(new OnClickListener() { //删除 @Override public void onClick(View v) { // TODO Auto-generated method stub FragmentTransaction ft=fm.beginTransaction(); ft.remove(fm.findFragmentByTag("first")); ft.commit(); } }); } }
代码下载
相关文章推荐
- Android Fragment 基本了解(图文介绍)
- Android程序开发之Fragment实现底部导航栏实例代码
- Android应用开发中Fragment与Activity间通信示例讲解
- Android的Fragment的生命周期各状态和回调函数使用
- 浅谈Android App开发中Fragment的创建与生命周期
- 实例探究Android开发中Fragment状态的保存与恢复方法
- Android Fragment的使用方法(翻译)
- 实例探究Android应用编写时Fragment的生命周期问题
- Android App开发中创建Fragment组件的教程
- Android中的Fragment类使用进阶
- 使用Fragment来处理Andoird app的UI布局的实例分享
- Android App中使用ListFragment的实例教程
- Android中Fragment子类及其PreferenceFragment的创建过程演示
- Android应用开发中Fragment间通信的实现教程
- Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果
- Android 中 Fragment的使用大全
- Android基于ViewPager Fragment实现选项卡
- Android中Fragment与Activity的生命周期对比
- 实例讲解Android应用开发中Fragment生命周期的控制
- Android学习之Fragment