Android 从片段更新edittext
我目前的情况如下: 1) “主视图”,其中包含我尝试更新的编辑文本。(我们称之为Android 从片段更新edittext,android,android-fragments,android-edittext,Android,Android Fragments,Android Edittext,我目前的情况如下: 1) “主视图”,其中包含我尝试更新的编辑文本。(我们称之为mainView) 2) 每当我点击“主视图”中包含的按钮时打开的片段 片段接收mainView作为参数 3) 一个OnClickListener,设置为片段所包含的按钮。此侦听器接收片段作为参数 基本上,我需要做的是,每次单击触发侦听器的按钮时,我都需要更新editText,但它似乎不起作用。我相信这与“通知”视图有关,但无论我做什么尝试,都无法使其工作。更新文本后,我关闭片段并 基本上,代码如下所示: publi
mainView
)
2) 每当我点击“主视图”中包含的按钮时打开的片段
片段接收mainView作为参数
3) 一个OnClickListener
,设置为片段所包含的按钮。此侦听器接收片段作为参数
基本上,我需要做的是,每次单击触发侦听器的按钮时,我都需要更新editText,但它似乎不起作用。我相信这与“通知”视图有关,但无论我做什么尝试,都无法使其工作。更新文本后,我关闭片段并
基本上,代码如下所示:
public void onClick(View v){
String newMessageContent = "hello world";
fragment1.mainView.editText1.setText(newMessageContent);
FragmentManager manager = this.fragment1.getActivity().getFragmentManager();
manager.beginTransaction().replace(R.id.container,this.fragment1.mainView.getPlaceHolderFragment()).commit();
}
FragmentManager manager = this.selectTemplateFragment.getActivity().getFragmentManager();
manager.beginTransaction().remove(this.selectTemplateFragment).commit();
请注意,为了让大家更好地理解,我将问题简化了一点,并更改了片段/视图的名称。文本“hello world”实际上是动态的,不依赖于OnClickListener
接收的其他参数
单击后,片段确实被替换,因此我知道onClickListener
工作正常,但我认为通知数据更改的方式有问题
我已经研究了很多问题,但是没有一个能帮助我实现我所需要的
非常感谢您的帮助。我意识到问题在于每次我通过fragmentManager替换Farment时,都会再次调用方法setActivityView,从而替换EditText内容 为了避免这种情况,我手动删除了片段(而不是替换它),执行以下操作:
public void onClick(View v){
String newMessageContent = "hello world";
fragment1.mainView.editText1.setText(newMessageContent);
FragmentManager manager = this.fragment1.getActivity().getFragmentManager();
manager.beginTransaction().replace(R.id.container,this.fragment1.mainView.getPlaceHolderFragment()).commit();
}
FragmentManager manager = this.selectTemplateFragment.getActivity().getFragmentManager();
manager.beginTransaction().remove(this.selectTemplateFragment).commit();
我意识到问题在于,每次我通过fragmentManager替换Farment时,都会再次调用方法setActivityView,从而替换EditText内容 为了避免这种情况,我手动删除了片段(而不是替换它),执行以下操作:
public void onClick(View v){
String newMessageContent = "hello world";
fragment1.mainView.editText1.setText(newMessageContent);
FragmentManager manager = this.fragment1.getActivity().getFragmentManager();
manager.beginTransaction().replace(R.id.container,this.fragment1.mainView.getPlaceHolderFragment()).commit();
}
FragmentManager manager = this.selectTemplateFragment.getActivity().getFragmentManager();
manager.beginTransaction().remove(this.selectTemplateFragment).commit();
我意识到问题在于,每次我通过fragmentManager替换Farment时,都会再次调用方法setActivityView,从而替换EditText内容 为了避免这种情况,我手动删除了片段(而不是替换它),执行以下操作:
public void onClick(View v){
String newMessageContent = "hello world";
fragment1.mainView.editText1.setText(newMessageContent);
FragmentManager manager = this.fragment1.getActivity().getFragmentManager();
manager.beginTransaction().replace(R.id.container,this.fragment1.mainView.getPlaceHolderFragment()).commit();
}
FragmentManager manager = this.selectTemplateFragment.getActivity().getFragmentManager();
manager.beginTransaction().remove(this.selectTemplateFragment).commit();
我意识到问题在于,每次我通过fragmentManager替换Farment时,都会再次调用方法setActivityView,从而替换EditText内容 为了避免这种情况,我手动删除了片段(而不是替换它),执行以下操作:
public void onClick(View v){
String newMessageContent = "hello world";
fragment1.mainView.editText1.setText(newMessageContent);
FragmentManager manager = this.fragment1.getActivity().getFragmentManager();
manager.beginTransaction().replace(R.id.container,this.fragment1.mainView.getPlaceHolderFragment()).commit();
}
FragmentManager manager = this.selectTemplateFragment.getActivity().getFragmentManager();
manager.beginTransaction().remove(this.selectTemplateFragment).commit();
我建议用方法实现一个接口,比如说,IUpdateFromFragment,比如,
onUpdate(String message)
,然后让activity实现该接口,并在片段内部调用类似于((IUpdateFromFragment)this.getActivity()).onUpdate(newMessageContent)的东西代码>我建议用方法实现一个接口,比如说IUpdateFromFragment,比如说,onUpdate(字符串消息)
,然后让activity实现该接口,在片段内部调用类似于((IUpdateFromFragment)this.getActivity()).onUpdate(newMessageContent)的东西代码>我建议用方法实现一个接口,比如说IUpdateFromFragment,比如说,onUpdate(字符串消息)
,然后让activity实现该接口,在片段内部调用类似于((IUpdateFromFragment)this.getActivity()).onUpdate(newMessageContent)的东西代码>我建议用方法实现一个接口,比如说IUpdateFromFragment,比如说,onUpdate(字符串消息)
,然后让activity实现该接口,在片段内部调用类似于((IUpdateFromFragment)this.getActivity()).onUpdate(newMessageContent)的东西代码>通过事务更新片段,然后在ViewCreated上的fragment1类中,可以执行mainView.editText1.setText(“任意”)
您现在这样做,我很惊讶没有抛出异常,因为视图还没有膨胀。通过事务更新片段,然后在ViewCreated上的fragment1类中,您可以执行mainView.editText1.setText(“任意”)
您现在这样做,我很惊讶没有抛出异常,因为视图还没有膨胀。通过事务更新片段,然后在ViewCreated上的fragment1类中,您可以执行mainView.editText1.setText(“任意”)
您现在这样做,我很惊讶没有抛出异常,因为视图还没有膨胀。通过事务更新片段,然后在ViewCreated上的fragment1类中,您可以执行mainView.editText1.setText(“任意”)
您现在这样做,我很惊讶没有抛出异常,因为视图尚未膨胀。如何获取fragment1引用?在构造函数中:public fragment1(MainView MainView)不确定您在说什么。但是只需使用fragment1=getFragmentById()或fragment1=getFragmentByTag(),然后在该fragment1上使用getViewById()来获取您的edittext id,希望这能解决您的问题。所以基本上问题是引用?让我试一试,我仍然不明白为什么它不起作用:(harikris引导我走向正确的方向:)如何获得fragment1引用?在构造函数中:public fragment1(MainView MainView)不确定你在说什么。但是只需使用fragment1=getFragmentById()或fragment1=getFragmentByTag(),然后在该fragment1上使用getViewById()来获取您的edittext id,希望这能解决您的问题。所以基本上问题是引用?让我试一试,我仍然不明白为什么它不起作用:(harikris引导我走向正确的方向:)如何获得fragment1引用?在构造函数中:public fragment1(MainView MainView)不确定