我是android新手。我想要一个EditText,以便所有活动都能看到它。如果我在任何活动中改变其内容,他们应该反映每一项活动。请给我解决方案...... !!!
答案 0 :(得分:0)
这可以使用片段完成,片段可以重复使用,并且可以附加到多个活动,片段有一个xml和java文件,当你在这些文件中更改EditText时,会在你的所有活动,所以制作片段并将其附加到你的所有活动中。
答案 1 :(得分:0)
如果要使用所有活动,可以创建静态变量
public class Utils {
public static String myString;
}
在开始另一项活动之前,您可以设置变量
Utils.myString = editText.getText().toString();
然后在每个活动的onResume上,您可以获取变量并将其设置为EditText
@Override
protected void onResume() {
super.onResume();
editText.post(new Runnable() {
@Override
public void run() {
if (editText!= null) {
editText.setText(Utils.myString);
}
}
});
}
但我建议你应该使用片段就是这种情况。这很容易。
答案 2 :(得分:0)
在不同的活动中重复使用相同的片段。 这里的假设是您希望编辑文本显示在活动1和2中。 Activity1将在Activity2之前调用。 activity1和activity2的布局都有一个id holder
的framelayout<强>活性1 强>
public class Activity1 extends Activity{
public static Fragment editTextFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_group);
...
editTextFragment = new EditTextFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.holder, editTextFragment);
ft.commit()
}
}
<强>活性2 强>
public class Activity2 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_group);
...
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.holder, Activity1.editTextFragment);
ft.commit()
}
}
<强> EditTextFragment.java 强>
public class EditTextFragment extends Fragment {
public testFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_edittext, container, false);
}
}
<强>布局/ fragment_edittext.xml 强>
<FrameLayout 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.example.editTextFragment">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>