安卓Fragement编程
时间: 2023-11-27 10:03:48 浏览: 30
安卓 Fragment 是一种 UI 组件,它可以被添加到 Activity 中,用于实现复杂的界面布局和交互。在使用 Fragment 进行编程时,需要遵循以下步骤:
1.创建 Fragment 类:定义一个继承自 Fragment 的子类,并实现该类的生命周期方法和 UI 布局。
2.在 Activity 中添加 Fragment:通过 FragmentManager 将 Fragment 添加到 Activity 中。
3.与 Fragment 交互:通过 Fragment 提供的接口与 Activity 中其他组件进行交互,比如监听按钮点击事件、传递数据等。
下面是一个简单的示例,演示如何创建和使用 Fragment:
1. 创建 Fragment 类
```
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// 加载布局文件
View view = inflater.inflate(R.layout.fragment_layout, container, false);
// 获取布局中的控件
Button btn = (Button) view.findViewById(R.id.btn_fragment);
// 设置按钮点击事件
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 在 Fragment 中执行操作
}
});
return view;
}
}
```
2. 在 Activity 中添加 Fragment
```
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取 FragmentManager
FragmentManager fragmentManager = getSupportFragmentManager();
// 开启事务
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
// 添加 Fragment
MyFragment fragment = new MyFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
// 提交事务
fragmentTransaction.commit();
}
}
```
3. 与 Fragment 交互
```
public class MainActivity extends AppCompatActivity implements MyFragment.OnButtonClickListener {
@Override
public void onButtonClick() {
// 在 Activity 中执行操作
}
}
```
在 Fragment 中定义接口:
```
public class MyFragment extends Fragment {
public interface OnButtonClickListener {
void onButtonClick();
}
private OnButtonClickListener mListener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnButtonClickListener) {
mListener = (OnButtonClickListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnButtonClickListener");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// ...
}
private void onButtonClicked() {
if (mListener != null) {
mListener.onButtonClick();
}
}
}
```
在 Activity 中实现接口:
```
public class MainActivity extends AppCompatActivity implements MyFragment.OnButtonClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
}
@Override
public void onButtonClick() {
// ...
}
}
```