Я хочу установить метод setOnShowListener(), чтобы предотвратить закрытие диалогового окна, поэтому я пишу что-то вроде этого,
public Dialog update_pop_up()
{
final AlertDialog.Builder builder = new AlertDialog.Builder(UgJadwal.this);
LayoutInflater inflater = UgJadwal.this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.updatepopup, null);
builder.setView(dialogView);
builder.setIcon(R.drawable.update);
builder.setTitle("Update schedule");
builder.setPositiveButton(R.string.update, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
}
});
builder.setNeutralButton(R.string.retrieve, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
}
});
builder.setNegativeButton(R.string.cancel, null);
return builder.create();
builder.setOnShowListener(new DialogInterface.OnShowListener()
{
@Override
public void onShow(DialogInterface dialog)
{
Button retrieve = builder.getButton(AlertDialog.BUTTON_NEUTRAL);
retrieve.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//do nothing;
}
});
}
});
}
По крайней мере, есть две ошибки, вызванные eclipse, первая из них находится в setOnShowListener
, которые говорят: "Метод setOnShowListener (новый DialogInterface.OnShowListener() {}) - undefined для типа AlertDialog.Builder" и другой - на builder.getButton(AlertDialog.BUTTON_NEUTRAL)
, который говорит: "Метод getButton (int) - undefined для типа AlertDialog.Builder". Я просто удивляюсь, почему это вызывает ошибки, потому что я делаю все правильно, думаю. У всех есть идея исправить это, спасибо.
[UPDATE!!]
Спасибо всем за вашу помощь. Это мой последний метод на setOnShowListener()
dialog.setOnShowListener(new DialogInterface.OnShowListener()
{
@Override
public void onShow(DialogInterface dialog)
{
Button retrieve = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_NEUTRAL);
retrieve.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
datasource.opentoread();
String[] hari = datasource.fetchDaily(ids.getText().toString());
datasource.close();
day.setText(String.valueOf(hari[0]));
subject.setText(String.valueOf(hari[1]));
time.setText(String.valueOf(hari[2]));
location.setText(String.valueOf(hari[3]));
lecture.setText(String.valueOf(hari[4]));
Toast.makeText(getApplicationContext(), "Retrieve success", Toast.LENGTH_LONG).show();
}
});
}
});
return dialog;