【发布时间】:2020-10-30 04:26:58
【问题描述】:
我正在尝试将数据从从 BaseAdapter 扩展的 FoodAdapter 传递到从 AppCompatDialogFragment 扩展的 FoodDialog。当用户单击 list_item 中的按钮时,我需要将数据传递给 FoodDialog。
addToCart = convertView.findViewById(R.id.button);
View finalConvertView = convertView;
addToCart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("TAG", String.valueOf(position));
TextView s = (TextView) finalConvertView.findViewById(R.id.foodName);
ConfirmFoodDialog confirmFoodDialog = new ConfirmFoodDialog();
confirmFoodDialog.show(((CategoryMenu) context).getSupportFragmentManager(), "Title");
Intent intent = new Intent(finalConvertView.getContext(), ConfirmFoodDialog.class);
intent.putExtra("Dish", s.getText().toString()); // s.getText().toString() returns the desired value
}
ConfirmFoodDialog.class
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.MyCustomTheme);
LayoutInflater inflater = getActivity().getLayoutInflater();
Intent intent = getActivity().getIntent();
food = intent.getStringExtra("Dish"); // food is a String variable
System.out.println(food); // I don't know why food returns null
}
【问题讨论】:
-
confirmFoodDialog.show(((CategoryMenu) context).getSupportFragmentManager(), "Title");在这里您正在显示对话框,然后Intent intent = new Intent(finalConvertView.getContext(), ConfirmFoodDialog.class); intent.putExtra("Dish", s.getText().toString()); // s.getText().toString() returns the desired value您正在构建一个什么都不做的意图