Android在一个fragment输入自定义文字点击后在另一个fragment显示
时间: 2023-11-28 17:50:58 浏览: 99
你可以通过以下步骤实现在一个 Fragment 中输入自定义文字并在另一个 Fragment 中显示:
1. 首先,在第一个 Fragment 中创建一个 EditText 控件,用户可以在其中输入自定义文本。
2. 创建一个按钮,当用户点击该按钮时,获取 EditText 中的文本,并将其传递到第二个 Fragment 中。
3. 在第二个 Fragment 中创建一个 TextView 控件,并将第一个 Fragment 传递的文本设置为 TextView 的文本。
具体实现步骤如下:
1. 在第一个 Fragment 的布局文件中添加一个 EditText 控件和一个按钮。
```xml
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your text here"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"/>
```
2. 在第一个 Fragment 的代码中,获取 EditText 中的文本,并将其传递到第二个 Fragment 中。
```java
public class FragmentOne extends Fragment {
private EditText editText;
private Button button;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
editText = view.findViewById(R.id.editText);
button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = editText.getText().toString();
FragmentTwo fragmentTwo = new FragmentTwo();
Bundle bundle = new Bundle();
bundle.putString("text", text);
fragmentTwo.setArguments(bundle);
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragmentTwo);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
return view;
}
}
```
3. 在第二个 Fragment 的布局文件中添加一个 TextView 控件。
```xml
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
```
4. 在第二个 Fragment 的代码中,获取从第一个 Fragment 传递过来的文本,并将其设置为 TextView 的文本。
```java
public class FragmentTwo extends Fragment {
private TextView textView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_two, container, false);
textView = view.findViewById(R.id.textView);
Bundle bundle = getArguments();
if (bundle != null) {
String text = bundle.getString("text");
textView.setText(text);
}
return view;
}
}
```
这样,当用户在第一个 Fragment 中输入自定义文本并点击按钮时,应用程序将切换到第二个 Fragment,并将第一个 Fragment 中输入的文本显示在第二个 Fragment 中的 TextView 控件中。
阅读全文