Android_开发片段(Part 3)

Android是目前移动设备最流行的操作系统之一,它的开源性和开发者友好的特点,吸引了很多开发者。在Android开发中,我们需要使用很多的片段(Fragment)对应用进行模块化开发。

本文将为大家介绍Android片段的详细使用方法,并且结合案例讲解如何在实际开发中使用片段来构建应用。

一、什么是Android片段

Android片段是Android SDK中的一种组件,它可以被看作是Activity的一个子模块。片段可以在Activity中动态加载和替换,使得Activity能够根据不同的需求,快速地切换和更新界面。

二、Android片段的使用方法

1.创建一个片段类

在开发者的工程项目中,可以创建一个Java类并让它扩展片段类。下面是创建一个片段类的示例代码:

```

public class ExampleFragment extends Fragment {

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

// 通过界面资源ID加载布局

View view = inflater.inflate(R.layout.example_fragment, container, false);

return view;

}

}

```

在该代码中,我们创建了一个名为ExampleFragment的片段类,并重写了onCreateView()方法。该方法会通过inflater.inflate()方法加载布局资源,然后返回该布局作为片段的界面。

2.在Activity中添加片段

在Activity中添加片段,需要使用片段管理器(FragmentManager)。下面是如何在Activity中添加片段的示例代码:

```

ExampleFragment exampleFragment = new ExampleFragment();

FragmentManager fragmentManager = getSupportFragmentManager();

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

fragmentTransaction.add(R.id.fragment_container, exampleFragment);

fragmentTransaction.commit();

```

在该代码中,我们创建了一个ExampleFragment的实例,并使用FragmentManager和FragmentTransaction添加片段。其中R.id.fragment_container是一个容器视图,在该容器视图中会显示添加的片段。

3.片段的生命周期

片段是动态加载和替换的,所以它有自己独立的生命周期。下面是片段的生命周期方法:

- onAttach() — 当片段与Activity相关联时调用。

- onCreateView() — 当片段第一次绘制视图时调用。

- onViewCreated() — 当片段的视图已经添加到Activity中时调用。

- onActivityCreated() — 当片段的Activity已经创建时调用。

- onStart() — 当片段对用户可见时调用。

- onResume() — 当片段已经准备好和用户交互时调用。

- onPause() — 当Activity停止时调用。

- onStop() — 当片段对用户不可见时调用。

- onDestroyView() — 当片段的视图已经从Activity中移除时调用。

- onDestroy() — 当片段被销毁时调用。

- onDetach() — 当片段与Activity分离时调用。

4.片段的通信

由于片段可以在Activity中动态加载和替换,所以在不同的片段之间进行通信是非常有用的。下面是如何在片段之间进行通信的示例代码:

在发送片段:

```

public class ExampleFragment extends Fragment {

private ExampleFragmentListener listener;

public interface ExampleFragmentListener {

void onExampleFragmentInteraction(String message);

}

@Override

public void onAttach(Context context) {

super.onAttach(context);

if (context instanceof ExampleFragmentListener) {

listener = (ExampleFragmentListener) context;

} else {

throw new RuntimeException(context.toString()

+ " must implement ExampleFragmentListener");

}

}

private void sendMessage() {

if (listener != null) {

listener.onExampleFragmentInteraction("Hello, World!");

}

}

}

```

在接收片段:

```

public class ExampleActivity extends AppCompatActivity implements ExampleFragment.ExampleFragmentListener {

@Override

public void onExampleFragmentInteraction(String message) {

// 处理来自ExampleFragment的消息。

}

}

```

在以上代码中,我们定义了一个ExampleFragmentListener接口,在ExampleFragment中实现并调用该接口的onExampleFragmentInteraction()方法时,可以发送消息。然后,在Activity中实现该接口,并重写onExampleFragmentInteraction()方法,就可以接受消息。

三、Android片段的应用示例

本文将以一个简单的Android应用程序为例,演示如何使用片段的基本功能。该应用程序包括两个片段:一个显示数字和一个显示按钮。用户可以点击按钮,从1开始逐个增加数字。

1.创建两个片段

首先,我们需要在项目中创建两个片段类:一个显示数字的片段和一个显示按钮的片段。

显示数字的片段:

```

public class NumberFragment extends Fragment {

private TextView numberTextView;

private int number = 0;

public NumberFragment() {

// Required empty public constructor

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View view = inflater.inflate(R.layout.fragment_number, container, false);

numberTextView = view.findViewById(R.id.number_text_view);

return view;

}

public void increaseNumber() {

number++;

numberTextView.setText(Integer.toString(number));

}

}

```

显示按钮的片段:

```

public class ButtonFragment extends Fragment {

private Button increaseButton;

private NumberFragment numberFragment;

public ButtonFragment() {

// Required empty public constructor

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View view = inflater.inflate(R.layout.fragment_button, container, false);

increaseButton = view.findViewById(R.id.increase_button);

increaseButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

numberFragment.increaseNumber();

}

});

return view;

}

public void setNumberFragment(NumberFragment fragment) {

numberFragment = fragment;

}

}

```

2.在Activity中添加片段

我们需要在MainActivity中添加片段。主要包括两个步骤:

① 实例化两个片段对象,在MainActivity中创建一个局部变量numberFragment,一个buttonFragment对象。

② 将两个片段添加到Activity布局中。这里我们创建了一个Linear布局和两个FrameLayout容器视图。其中,buttonFragment占用整个屏幕的一半,numberFragment占用另一半。

MainActivity的示例代码:

```

public class MainActivity extends AppCompatActivity {

private NumberFragment numberFragment;

private ButtonFragment buttonFragment;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

numberFragment = new NumberFragment();

buttonFragment = new ButtonFragment();

buttonFragment.setNumberFragment(numberFragment);

FragmentManager fragmentManager = getSupportFragmentManager();

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

fragmentTransaction.add(R.id.button_container, buttonFragment);

fragmentTransaction.add(R.id.number_container, numberFragment);

fragmentTransaction.commit();

}

}

```

3.运行应用程序

在编辑器中运行,我们会看到效果如下:

![image-20211026143400816](https://i.loli.net/2021/10/26/k5c1jyLtD9Mu2Wx.png)

结语

Android片段是Android开发中的重要组成部分,它可以快速地切换和更新应用程序中的界面。本文介绍了如何创建一个片段,如何在Activity中添加片段,以及如何在不同的片段之间进行通信。通过一个简单的Android应用程序,我们演示了如何使用片段的基本功能。在实际开发中,可以根据需求使用片段,创造出更好的用户体验。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(99) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部