我制作了一个自定义alertdialog,里面有2个Edittexts。我想在点击某些内容时从现有数据库向其传递信息。
这是自定义提醒对话框的类
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.add_job_dialouge, null);
builder.setView(view).setTitle("Add Job")
.setPositiveButton("add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if(isDouble(wageValue.getText().toString())){
String nameOjob = jobName.getText().toString();
Double valueOwage = Double.parseDouble(wageValue.getText().toString());
listener.applyTexts(nameOjob, valueOwage);
builder.create();
}else{
wageValue.setError("Wrong Format Error");
}
}
})
.setNeutralButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
jobName = view.findViewById(R.id.job_name_ETD);
wageValue = view.findViewById(R.id.wage_ETD);
//I want to pass information to these
//jobName.setText();
//wageValue.setText();
return builder.create();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
listener =(ExampleDialogueListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() + "must implement Example Dialogue Listener");
}
}
public interface ExampleDialogueListener{
void applyTexts(String jobname, Double wage);
}
boolean isDouble(String str) {
try {
Double.parseDouble(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
我想通过参数将信息传递给edittext,以便在创建alertdialog时有关于编辑文本的信息
答案 0 :(得分:0)
看起来你正在扩展DialogFragment。
您可以像传统的片段一样传递数据。
Bundle args = new Bundle();
args.putString("arg_key","something");
f.setArguments(args);
其中 f 是DialogFragment的实例。
在DialogFragment中,你可以调用 getArguments()来获取你的包。