我在尝试在项目中添加功能时遇到了困难,我需要一些有关如何超越此步骤的帮助。因此,我决定在我的preferencesFragment类上创建方法selectCurrency()
,如您所见,我创建了一个不超过6种货币的简单对话框,一旦从该对话框中选择了一种货币,我想做的就是将其显示在我的货币适配器上。
public class PreferencesFragment extends PreferenceFragment {
final static String[] items = {"$ - US Dollar", "€ - Euro", "£ - British Pound","IRN - IRN ","A$ - Australian Dollar", " CA$ - Canadian Dollar"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from the XML resource
addPreferencesFromResource(R.xml.pref_general);
//show currency
final Preference currencyPreference = findPreference
(getResources().getString(R.string.setting_category_currency_change_button_key));
currencyPreference.setOnPreferenceClickListener(preference -> {
selectCurrency();
return false;
});
}
@RequiresApi(api = Build.VERSION_CODES.M)
public void selectCurrency() {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Select Currency")
.setItems(items, (dialog, which) -> {
// String selectedText = items[which].toString();
Toast.makeText(getActivity(), items[which] + " was selected", Toast.LENGTH_SHORT).show();
});
builder.setPositiveButton("OK", null);
builder.setNegativeButton("CANCEL", null);
AlertDialog alertDialog = builder.create();
alertDialog.show();
Button button = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
button.setBackgroundColor(Color.argb(100,100,25,51));
button.setTextColor(Color.WHITE);
}
}
这是我的适配器。
因此,当前我使用的字符串不正确,因此如何从上面的片段中将选定的货币获取到此处的适配器:holder1.setWalletAmountView("$ " + Double.valueOf(walletBalance).toString());
public class CurrencyAdapter extends RecyclerView.Adapter<CurrencyAdapter.GeneralViewHolder> {
@Override
public void onBindViewHolder(GeneralViewHolder holder, int position) {
if (getItemViewType(position) == -1) {
MonthSummaryCard holder1 = (MonthSummaryCard) holder;
holder1.setWalletAmountView("$ " + Double.valueOf(walletBalance).toString());
holder1.setTotalExpensesPerMonth("$ " + Double.valueOf(totalExpenseAmount).toString());