<!--指定在layout中实例化的Fragment类,需要为“包名.类名”的完整形式--> android:name <!--唯一标识,id和tag可任选其一,不可两者都没有--> android:id android:tag
<?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:id="@+id/fragment_text" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//将layout布局转换成View对象
View view = inflater.inflate(R.layout.myfragment, container, false);
//必须通过view对象对其子组件进行访问
TextView textView = (TextView) view.findViewById(R.id.fragment_text);
textView.setText("这里是fragment");
//返回Fragment显示UI
return view;
}
}
<?xml version="1.0" encoding="utf-8"?> <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" tools:context="com.studying.StaticFragmentActivity"> <fragment android:tag="fragment" android:name="com.joahyau.studying.MyFragment" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
public class StaticFragmentActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_static_fragment);
//可直接通过findViewById访问
findViewById(R.id.fragment_text).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(StaticFragmentActivity.this, "点击了文本", Toast.LENGTH_SHORT).show();
}
});
}
}
FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction();
<?xml version="1.0" encoding="utf-8"?> <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="vertical" tools:context="io.github.joahyau.studying.DynamicFragmentActivity"> <Button android:id="@+id/load" android:text="加载" android:layout_width="match_parent" android:layout_height="80dp" /> <LinearLayout android:id="@+id/container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" /> </LinearLayout>
public class DynamicFragmentActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dynamic_fragment);
findViewById(R.id.load).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取事务管理器
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
//创建fragment,并将其动态加载到id位container的布局中
MyFragment myFragment = new MyFragment();
fragmentTransaction.add(R.id.container, myFragment);
//提交事务
fragmentTransaction.commit();
}
});
}
}
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.send).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//创建Fragment对象
MyFragment myFragment = new MyFragment();
//创建Bundle对象并传入数据
Bundle bundle = new Bundle();
bundle.putString("info", "这里是向Fragment传递的数据");
myFragment.setArguments(bundle);
//加载Fragment
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
beginTransaction.add(R.id.layout, myFragment, "myfragment");
beginTransaction.commit();
}
});
}
}
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment, container, false);
TextView tv = (TextView) view.findViewById(R.id.text);
//获取数据
String text = getArguments().get("info") + "";
tv.setText(text);
return view;
}
}
public class MyFragment extends Fragment {
private Button btn;
private String received;//作为容器的对象
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment, container, false);
TextView tv = (TextView) view.findViewById(R.id.text);
tv.setText("这里是Fragment");
btn = (Button) view.findViewById(R.id.send);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "成功接收\"" + getReceived() + "\"", Toast.LENGTH_SHORT).show();
}
});
return view;
}
public String getReceived() {
return received;
}
public void setReceived(String received) {
this.received = received;
}
}
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fragmentManager = getFragmentManager();
MyFragment myFragment = (MyFragment) fragmentManager.findFragmentById(R.id.my_fragment);
myFragment.setReceived("this is a test.");
}
}
public class MyFragment extends Fragment {
private SendData sendData;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
//获取实现的接口对象
sendData = (SendData) activity;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment, container, false);
TextView tv = (TextView) view.findViewById(R.id.text);
tv.setText("这里是Fragment");
//通过接口对象传递数据
sendData.sendMsg("this is a test.");
return view;
}
//定义一个回调接口
public interface SendData{
void sendMsg(String str);
}
}
public class MainActivity extends Activity implements MyFragment.SendData{
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.send);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyFragment myFragment = new MyFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
beginTransaction.add(R.id.layout, myFragment);
beginTransaction.commit();
}
});
}
//实现SendData接口,接收数据
@Override
public void sendMsg(String str) {
Toast.makeText(this, "成功接收\"" + str + "\"", Toast.LENGTH_SHORT).show();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有