第一行代码Android学习(四)
来源:互联网 发布:中英文转换器软件 编辑:程序博客网 时间:2024/05/18 06:35
第一行代码Android学习:第四部分主要涉及到碎片的简单使用、动态添加碎片、在碎片中模拟返回栈、碎片和活动之间相互通信和碎片的生命周期
1.activity_main.xml
<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" tools:context=".MainActivity" > <fragment android:id="@+id/fg_left" android:name="com.example.dyhdm_04_00fragmenttest.LeftFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" /> <FrameLayout android:id="@+id/fl_right" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <fragment android:id="@+id/fg_right" android:name="com.example.dyhdm_04_00fragmenttest.RightFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout></LinearLayout>
- 2.fragment_left.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" android:orientation="vertical" > <Button android:id="@+id/bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Button" /></LinearLayout>
- 3.fragment_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" android:background="#00ff00" android:orientation="vertical" > <TextView android:id="@+id/bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="this is right fragment" android:textSize="20sp" /></LinearLayout>
- 4.fragment_right_other.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" android:background="#ffff00" android:orientation="vertical" > <TextView android:id="@+id/bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="this is other right fragment" android:textSize="20sp" /></LinearLayout>
- 5.LeftFragment.java
/* * @Title: LeftFragment.java * @Description: TODO * @author: 张志安 * @date: 2016-8-15 下午3:33:41 * */package com.example.dyhdm_04_00fragmenttest;import android.app.Activity;import android.app.Fragment;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Toast;/** * TODO 左面的fragment * @author 张志安 * @date: 2016-8-15 下午3:33:41 */public class LeftFragment extends Fragment { /** * 重载方法 */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_left, container, false); getActivityMehtod(); return view; } /** * 用于在 Activity获取的方法 */ public void testMethod(){ Toast.makeText(getActivity(), "LeftFragment", Toast.LENGTH_SHORT).show(); } /** * TODO 在fragment中获取activity的方法 * * @throw * @return void */ protected void getActivityMehtod() { MainActivity activity = (MainActivity)getActivity(); Log.e("zza", activity.testMethod()+"123"); }}
- 6.RightFragment.java
/* * @Title: LeftFragment.java * @Description: TODO * @author: 张志安 * @date: 2016-8-15 下午3:33:41 * */package com.example.dyhdm_04_00fragmenttest;import android.app.Activity;import android.app.Fragment;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/** * TODO 左面的fragment * * @author 张志安 * @date: 2016-8-15 下午3:33:41 */public class RightFragment extends Fragment { /** * 重载方法 */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.e("zza", "onCreateView"); View view = inflater.inflate(R.layout.fragment_right, container, false); return view; } /** * 重载方法 */ @Override public void onAttach(Activity activity) { super.onAttach(activity); Log.e("zza", "onAttach"); } /** * 重载方法 */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("zza", "onCreate"); } /** * 重载方法 */ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.e("zza", "onActivityCreated"); } /** * 重载方法 */ @Override public void onStart() { super.onStart(); Log.e("zza", "onStart"); } /** * 重载方法 */ @Override public void onResume() { super.onResume(); Log.e("zza", "onResume"); } /** * 重载方法 */ @Override public void onPause() { super.onPause(); Log.e("zza", "onPause"); } /** * 重载方法 */ @Override public void onStop() { super.onStop(); Log.e("zza", "onStop"); } /** * 重载方法 */ @Override public void onDestroy() { super.onDestroy(); Log.e("zza", "onDestroy"); } /** * 重载方法 */ @Override public void onDestroyView() { super.onDestroyView(); Log.e("zza", "onDestroyView"); } /** * 重载方法 */ @Override public void onDetach() { super.onDetach(); Log.e("zza", "onDetach"); }}
- 7.AnotherRightFragment.java
/* * @Title: LeftFragment.java * @Description: TODO * @author: 张志安 * @date: 2016-8-15 下午3:33:41 * */package com.example.dyhdm_04_00fragmenttest;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/** * TODO 左面的fragment * @author 张志安 * @date: 2016-8-15 下午3:33:41 */public class AnotherRightFragment extends Fragment { /** * 重载方法 */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_right_other, container, false); return view; }}
- 8.MainActivity.java
package com.example.dyhdm_04_00fragmenttest;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity { private Button bt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt = (Button) findViewById(R.id.bt); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 切换fragment的方法 // 1.创建待添加碎片的实例 AnotherRightFragment fragment = new AnotherRightFragment(); // 2.通过getFragmentManager()获取FragmentManager FragmentManager fragmentManager = getFragmentManager(); // 3.通过beginTransaction()开启一个事务 FragmentTransaction fragmentTransaction = fragmentManager .beginTransaction(); // 4.向容器内加入碎片,一般使用replace(),传入容器的id和碎片的实例 fragmentTransaction.replace(R.id.fl_right, fragment); // 将一个事务添加到返回栈中,非必须,不加按下返回直接退出 fragmentTransaction.addToBackStack(null); // 5.使用commit()提交事务 fragmentTransaction.commit(); getFragmentMehtod(); } }); } /** * TODO 在activity中获取fragment的方法 * * @throw * @return void */ protected void getFragmentMehtod() { LeftFragment leftFragment = (LeftFragment) getFragmentManager() .findFragmentById(R.id.fg_left); leftFragment.testMethod(); } /** * 用于在 fragment获取的方法 */ public String testMethod(){ Toast.makeText(MainActivity.this, "Activity", Toast.LENGTH_SHORT).show(); return "Activity"; }}
代码下载地址
0 0
- 第一行代码Android学习(四)
- 《第一行代码-Android》学习笔记(四)
- 《第一行代码》学习记录(四)
- Android第一行代码学习笔记四----数据存储
- 第一行代码Android学习(一)
- 第一行代码Android学习(二)
- 第一行代码Android学习(三)
- 第一行代码Android学习(五)
- 第一行代码Android学习(六)
- 第一行代码Android学习(七)
- 第一行代码Android学习(八)
- 第一行代码Android学习(九)
- 第一行代码Android学习(十)
- 第一行代码Android学习(十一)
- 第一行代码Android学习(十二)
- (第一行代码)笔记(四)
- 第一行代码(四)Fragment
- 《第一行代码-Android》学习笔记(一)
- hdu1564 Play a game【博弈 找规律】
- HDU-2089 不要62(数位DP基础题-两种写法)
- 带你玩转Visual Studio——性能分析与优化
- Eclipse新建类的时候自动添加注释
- Universal-Image-Loader源码阅读(6)-core/imageaware/ViewAware
- 第一行代码Android学习(四)
- RxJava操作符(8)-聚合
- ODPS的SQL
- Opencv图像识别从零到精通(28)----Kmeans
- 极客班 c++(下)第二周学习笔记 ——重载 operator new & operator delete
- Unfortunately,Launcher has stopped
- 应用时间序列分析(王燕)学习笔记3
- linux 下文件及目录函数
- androidstudio快捷键