加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 来自另一个与fragment无关的活动的片段中的setText

发布时间:2020-12-15 04:35:27 所属栏目:Java 来源:网络整理
导读:我想在另一个活动的片段中设置textView,这个活动不是MainActivity有片段事务. 已经尝试过与我的问题相关的其他相关文章中的一些方法,但是出了错误.. 这是我在片段中的方法来接收另一个活动 片段A. public class FragmentA extends Fragment { @Override publ
我想在另一个活动的片段中设置textView,这个活动不是MainActivity有片段事务.

已经尝试过与我的问题相关的其他相关文章中的一些方法,但是出了错误..

这是我在片段中的方法来接收另一个活动

片段A.

public class FragmentA extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        ProgressDialog pDialog = new ProgressDialog(getContext());
        pDialog.setCancelable(false);

    }

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
        // Inflating view layout
        View layout = inflater.inflate(R.layout.fragment_A,container,false);

        //Put Data to id fragment
        valueName = (TextView) layout.findViewById(R.id.valueNameNav);
        valueStatus = (TextView) layout.findViewById(R.id.valueStatusNav);

    }

    public void setText(String name,String status){

            valueName = (TextView) getView().findViewById(R.id.valueNameNav);
            valueName.setText(name);
            valueStatus = (TextView) getView().findViewById(R.id.valueStatusNav);
            valueStatus.setText(status);
    }
}

这就是我如何从活动中调用片段中的setText方法

String editValueName= editName.getText().toString();
String lastStatus = valueStatus.getText().toString();

FragmentA mFragment = (FragmentA )
     getSupportFragmentManager().findFragmentById(R.id.fragment_A);

mFragment.setText(editValueName,lastStatus);

但是得到了这样的错误

java.lang.NullPointerException: Attempt to invoke virtual method ‘void
com.example.study.fragment.fragmentA.setText(java.lang.String,
java.lang.String)’ on a null object reference

100%确定字符串getText上有数据字符串

解决方法

在活动中创建一个FrameLayout,其id容器的高度为MATCH_PARENT
然后像这样在你的活动中添加片段

FragmentA newFragment = new FragmentA ();
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            ft.replace(R.id.container,newFragment).commit();

而不是设置你的文字

String editValueName= editName.getText().toString();
String lastStatus = valueStatus.getText().toString();
newFragment .setText(editValueName,lastStatus);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读