亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在將數據通過捆綁包從活動傳遞到片段時獲取 null

在將數據通過捆綁包從活動傳遞到片段時獲取 null

慕森王 2022-08-03 10:42:04
通過捆綁包傳遞時在途中丟失數據,我得到嘗試在 String bundlePassData = this.getArguments().getString(“tagName”) 上的空對象引用上調用虛擬方法 'java.lang.String.String android.os.bundle.getString(java.lang.String)'這是我的代碼示例。主要活動-> tagsView.setOnItemClickListener(new AdapterView.OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {            Bundle bundle = new Bundle();            TextView textView = (TextView) view.findViewById(R.id.tagName);            String selectedItemName = textView.getText().toString();            bundle.putString("tagName", selectedItemName);            TaskAssignFragment taskAssignFragment = new TaskAssignFragment();            taskAssignFragment.setArguments(bundle);            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();            transaction.commit();            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,                    new TaskAssignFragment()).addToBackStack(null).commit();            Log.i("ListView", selectedItemName);        }    });TaskAssignFragment->@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    View view = inflater.inflate(R.layout.fragment_task_assign, container, false);    TextView test = view.findViewById(R.id.testerView);    String bundlePassData = this.getArguments().getString("tagName");    test.setText(bundlePassData);    return view;}我應該試試嗎?但是,如果我需要將數據作為變量,而不僅僅是在函數中,因為我會在.interfacesfragment
查看完整描述

4 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

在代碼中,替換時將創建新片段。


TaskAssignFragment taskAssignFragment = new TaskAssignFragment();

            taskAssignFragment.setArguments(bundle);


getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,

                    new TaskAssignFragment()).addToBackStack(null).commit();

使用已在其中設置參數的已創建的片段實例


  getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,

                   taskAssignFragment).addToBackStack(null).commit();


查看完整回答
反對 回復 2022-08-03
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

您正在創建新對象,同時替換片段。


        TaskAssignFragment taskAssignFragment = new TaskAssignFragment();

        taskAssignFragment.setArguments(bundle);


        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,

                taskAssignFragment).addToBackStack(null).commit();

試試這個


查看完整回答
反對 回復 2022-08-03
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

tagsView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override

        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            Bundle bundle = new Bundle();

            TextView textView = (TextView) view.findViewById(R.id.tagName);

            String selectedItemName = textView.getText().toString();

            bundle.putString("tagName", selectedItemName);


            TaskAssignFragment taskAssignFragment = new TaskAssignFragment();

            taskAssignFragment.setArguments(bundle);


            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

            transaction.commit();


            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,

                    taskAssignFragment).addToBackStack(null).commit();


            Log.i("ListView", selectedItemName);

        }

    });

請嘗試此代碼,創建一個新的 TaskAssignFragment() 實例,并在沒有參數的情況下傳遞它


查看完整回答
反對 回復 2022-08-03
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

您可以直接在片段上調用方法,例如:


TaskAssignFragment taskAssignFragment = new TaskAssignFragment();

// Call here your own method (from fragment)

taskAssignFragment.setSelectedItemName(selectedItemName);

在你的片段中:


public void setSelectedItemName(String selectedItemName) {

    // Store data as field in class

    this.selectedName = selectedItemName

}

其中 是類中的字段。selectedName


查看完整回答
反對 回復 2022-08-03
  • 4 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號