Fragment的接口回调
来源:互联网 发布:不用网络的跑酷游戏 编辑:程序博客网 时间:2024/06/06 01:31
重点介绍Fragment碎片与activity的数据交互,fragment在Android开发中起着至关重要的作用,通过官方Android api我们可以看到,fragment有着自己的生命周期并依赖于它绑定的activity的生命周期而存在,那样activity与fragment怎样进行数据交互呢?
MainActiivity的代码:
package com.example.fragment;
import com.example.fragment.Fragment.Callback;
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.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private FragmentManager manager;// 创建fragment管理
private FragmentTransaction transaction;// 创建fragment的事物
private EditText editText;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) this.findViewById(R.id.editText2);
button = (Button) this.findViewById(R.id.button1);
manager = getFragmentManager();
transaction = manager.beginTransaction();
final Fragment02 fragment02 = new Fragment02();
transaction.add(R.id.left, fragment02, “left”);
transaction.commit();
// 不管要实现怎样的功能都必须调用以下三个方法
// manager=getFragmentManager();
//transaction=manager.beginTransaction();
// transaction.commit();提交数据
button.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub //通过callback机制得到fragment的数据 fragment02.getString(new Callback() { @Override public void getString(String msg) { // TODO Auto-generated method stub editText.setText(msg); } }); }});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Fragment02的代码:
package com.example.fragment;
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.Button;
import android.widget.EditText;
public class Fragment02 extends Fragment {
private Button button;
private EditText editText;
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
// 在该方法中更新UI
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.left, null);
button = (Button) view.findViewById(R.id.button1);
editText = (EditText) view.findViewById(R.id.editText1);
button.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View arg0) { //通过getActivity方法得到activity的控件,以此可以得到数据 EditText eText = (EditText) getActivity().findViewById( R.id.editText2); Log.i("info", "------->" + eText.getText().toString()); editText.setText(eText.getText().toString()); }});return view;
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
//实现数据传递
public void getString(Callback callback) {
String msg = editText.getText().toString();
callback.getString(msg);
}
//创建接口
public interface Callback {
public void getString(String msg);
}
}
main的xml
- Fragment的接口回调
- Fragment接口回调 三 使用接口
- Fragment和Activity通信中体现的接口回调
- 利用接口回调实现fragment与activity的通信
- 利用接口回调实现Fragment之间的跳转
- Fragment向activity传值的接口回调方法
- 回调接口实现Activity与Fragment之间的通信
- 利用接口回调实现fragment与activity的通信
- Fragment之间的传值 接口回调
- Fragment学习之使用接口回调的方式实现Fragment与Activity通信
- Fragment(3)和其他Fragment之间交互--伟大的接口回调
- Fragment学习之使用接口回调的方式实现Fragment与Activity通信
- 47 Android fragment 接口回调
- 接口回调在fragment中的使用
- Fragment接口回调 二 使用Bundle
- Fragment传值接口回调
- Android中接口的回调,Activity或Fragment与普通类之间的互相调用
- Fragment与Fragment之间的回调
- Mac os x下配置nginx + php
- BZOJ 1853 [Scoi2010]幸运数字
- Netty系列之Netty高性能之道
- 透镜看游戏(零)
- One Bomb
- Fragment的接口回调
- SSD安装及训练自己的数据集
- ypedef struct LNode结构指针
- apache Mina自学
- java初级之24方法的重载
- 基于Tair存储的广告服务性能优化总结及思考
- 寻址范围总结
- A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效
- git reset应用场景说明