Java 将对话框所选项目传递给其他活动或适配器
我一直在努力在我的项目中添加一个功能,我需要一些帮助来帮助我如何超越这一步。因此,我决定在我的首选项Fragment类上创建一个方法Java 将对话框所选项目传递给其他活动或适配器,java,android,dialog,android-alertdialog,Java,Android,Dialog,Android Alertdialog,我一直在努力在我的项目中添加一个功能,我需要一些帮助来帮助我如何超越这一步。因此,我决定在我的首选项Fragment类上创建一个方法selectCurrency(),正如您所看到的,我创建了一个不超过6种货币的简单对话框,我想做的是,一旦从该对话框中选择了一种货币,我想在我的货币适配器上显示它 public class PreferencesFragment extends PreferenceFragment { final static String[] items = {"$ -
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);
}
}
这是我的适配器。
因此,目前我使用的字符串不正确,因此如何从上面的片段将所选货币获取到下面的适配器:atholder1.setWalletAmountView(“$”+Double.valueOf(walletBalance.toString())代码>
公共类CurrencyAdapter扩展了RecyclerView.Adapter{
@凌驾
公共无效onBindViewHolder(通用文件夹持有人,内部位置){
如果(getItemViewType(位置)=-1){
MonthSummary卡持有者1=(MonthSummary卡)持有者;
holder1.setWalletAmountView(“$”+Double.valueOf(walletBalance.toString());
holder1.SetTotalExpenseSemonth(“$”+Double.valueOf(totalExpenseAmount.toString());
@Benoit有任何帮助吗?您是否尝试过使用接口,然后在数据更改时通知适配器?
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());