簡體   English   中英

使用 Android 中另一個片段的 EditText 填充微調器

[英]Populating spinner with EditText from another fragment in Android

我有兩個片段。在第一個是 EditText 女巫從用戶那里獲取一些信息,在另一個片段中具有 Spinner。我正在使用 Android Navigation 將首先轉換為字符串的 EditText 發送到第二個片段中的 Spinner。它只顯示文本很好,但是當我想向 Spinner 添加另一個文本時,它只是替換第一個文本並在微調器中只顯示一個文本/項目。 所以我的問題是如何保存我之前發送的文本並擁有不錯的下拉微調器。 順便說一句,我正在使用數據綁定,我不知道它是否是解決方案的重要信息。

我發送數據的片段:

@Override
public void onClickComplete() {
    String addCategoryString = addCategory.getText().toString();
    FluctuatingCategoryFragmentDirections.ActionFluctuatingCategoryToCreatingBudgetingItem2 action
            = FluctuatingCategoryFragmentDirections.actionFluctuatingCategoryToCreatingBudgetingItem2();
    action.setFluctuatingCategory(addCategoryString);
    navController.navigate(action);
}

接收片段:

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    if (getArguments() != null) {
        CreatingBudgetingItemFragmentArgs args = CreatingBudgetingItemFragmentArgs.fromBundle(getArguments());
        String getCategory = args.getFluctuatingCategory();
        Log.i("Category: ", getCategory);
        ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, android.R.id.text1);
        spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(spinnerAdapter);
        spinnerAdapter.notifyDataSetChanged();
    }
}

當您導航到FluctuatingCategoryToCreatingBudgetingItem時,每次都會重新創建片段,這就是為什么只會顯示您傳遞的值的原因。 您必須使用 ViewModel。

設置一個包含 FluctuatingCategoryies 的列表並設置您的CreatingBudgetingItemFragment以從 ViewModel 獲取列表項。

不給你任何代碼,因為我希望你開始你的學習曲線。 可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM