我是android新手。我的代码包括创建两个fragment.Fragment1包含EditText和button。单击按钮后,需要在Fragment2的TextView中更新EditText中的用户输入。我的问题是,当我编写onActivityCreated()方法时,EditText不会存储用户输入并且Fragment2不会膨胀。感谢提前提供解决方案。 MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
setContentView(R.layout.activity_main);
FragmentOne fragmentOne = new FragmentOne();
FragmentTwo fragmentTwo = new FragmentTwo();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.fragment1,fragmentOne);
ft.add(R.id.fragment2,fragmentTwo);
ft.commit();
}catch (Exception e){
Log.e("MainActivity",e.toString()) ;
}
}
}
FragmentOne.java
public class FragmentOne extends Fragment {
View v = null ;
EditText name;
Button b;
String value = "";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_one, container, false);
name = (EditText) v.findViewById(R.id.et_name);
b = (Button) v.findViewById(R.id.button);
return v;
}
public void onActivityCreated(Bundle savedInstance) {
super.onActivityCreated(savedInstance);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
value = name.getText().toString();
clickMe(value);
}
});
}
public void clickMe(String value){
Bundle b = new Bundle();
b.putString("Name",value);
this.setArguments(b);
}
}
FragmentTwo.java
public class FragmentTwo extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.fragment_two, container, false);
return v;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String name = "";
Bundle bundle = getArguments();
if (bundle != null) {
name = bundle.getString("Name");
}
TextView display = (TextView)getView().findViewById(R.id.display);
display.setText(name);
}
}
答案 0 :(得分:0)
考虑到您正在构建自己的应用程序,并了解如何处理所有这些,让我给您一些建议:
使用Android Jetpack导航组件可以大大简化应用内导航。在这里检查:https://developer.android.com/guide/navigation
我还建议您熟悉基本的应用程序体系结构。我建议按照官方android文档查看MVVM。在这里阅读更多: https://developer.android.com/jetpack/guide
如果您能做到这一点,还应该学习:
这似乎太多了,但是如果您想以正确的方式做事,我建议您沿着这条路线走。