Android在一个fragment输入自定义文字点击后在另一个fragment显示并保持
时间: 2023-11-28 16:51:24 浏览: 46
要实现这个功能,你可以在第一个 Fragment 中添加一个 EditText,用于输入自定义文字。然后,在点击按钮或者其他触发事件后,将输入的文字保存到 Activity 中的一个变量中。接下来,在第二个 Fragment 中,你可以使用 TextView 来显示这个变量中的文字。
为了保持这个值在两个 Fragment 中的一致性,你可以在 Activity 中定义这个变量,然后在两个 Fragment 中都通过 getActivity() 方法获取它。这样,无论在哪个 Fragment 中修改了这个变量的值,都能够在另一个 Fragment 中看到最新的值。
以下是一个简单的示例代码:
在 Activity 中定义变量并提供获取和设置方法:
```java
public class MainActivity extends AppCompatActivity {
private String customText;
public String getCustomText() {
return customText;
}
public void setCustomText(String customText) {
this.customText = customText;
}
// ...
}
```
在第一个 Fragment 中获取变量并保存输入的文字:
```java
public class FirstFragment extends Fragment {
private EditText editText;
private MainActivity activity;
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = (MainActivity) context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_first, container, false);
editText = view.findViewById(R.id.edit_text);
Button button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
activity.setCustomText(editText.getText().toString());
}
});
return view;
}
// ...
}
```
在第二个 Fragment 中获取变量并显示文字:
```java
public class SecondFragment extends Fragment {
private TextView textView;
private MainActivity activity;
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = (MainActivity) context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_second, container, false);
textView = view.findViewById(R.id.text_view);
textView.setText(activity.getCustomText());
return view;
}
// ...
}
```