当我更改单位时,我正在尝试制作一个单位转换器,但结果并未如图所示进行门控更新
当我从菜单中选择单位时,转换必须在 textview 上可见
这里是代码:-
public class UnitMenu extends BottomSheetDialogFragment {
ListView unitList;
String set;
String[] units;
ExtendedFloatingActionButton button;
UnitMenu(String[] units, String set, ExtendedFloatingActionButton button) {
this.units = units;
this.set = set;
this.button = button;
}
@NonNull
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.area_select_unit, container, true);
unitList = view.findViewById(R.id.unitList);
ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, units);
unitList.setAdapter(adapter);
unitList.setOnItemClickListener((parent, v, position, id) -> {
if (set.equals("Select Unit From"))
ConverterActivity.setSelectedFromUnit(units[position]);
else ConverterActivity.setSelectedToUnit(units[position]);
button.setText(units[position]);
dismiss();
});
return view;
}
}
请在调用显示对话框时添加您的代码以获得更好的答案。 通常我会这样使用回调:
class UnitDialog : BottomSheetDialogFragment(){
private lateinit var onChangeUnit: (String) -> Unit
companion object {
fun newInstance(onChangeUnit: (String) -> Unit){
val dialog = UnitDialog()
dialog.onChangeUnit = onChangeUnit
return dialog
}
}
fun onItemClick(unit: String){
onChangeUnit.invock(unit)
}
}
class MainActivity: AppCompatActivity(){
fun changeUnit(){
UnitDialog.newInstance(){ newUnit->
// call logic convert number in here
}.show(supportFragmentManager,"TAG_UNIT_DIALOG")
}