日食检测到setOnShowListener执行错误 [英] Eclipse detect error on the implementation of setOnShowListener
问题描述
我要定我的setOnShowListener()方法prevent对话框的关闭,所以我写这样的事情,
公开对话update_pop_up()
{
最后AlertDialog.Builder建设者=新AlertDialog.Builder(UgJadwal.this);
LayoutInflater吹气= UgJadwal.this.getLayoutInflater();
查看dialogView = inflater.inflate(R.layout.updatepopup,NULL);
builder.setView(dialogView);
builder.setIcon(R.drawable.update);
builder.setTitle(更新计划); builder.setPositiveButton(R.string.update,新DialogInterface.OnClickListener()
{
@覆盖
公共无效的onClick(DialogInterface对话框,INT ID)
{ }
}); builder.setNeutralButton(R.string.retrieve,新DialogInterface.OnClickListener()
{
@覆盖
公共无效的onClick(DialogInterface对话框,INT ID)
{ }
}); builder.setNegativeButton(R.string.cancel,NULL);
返回builder.create(); builder.setOnShowListener(新DialogInterface.OnShowListener()
{
@覆盖
公共无效昂秀(DialogInterface对话)
{
按钮检索= builder.getButton(AlertDialog.BUTTON_NEUTRAL);
retrieve.setOnClickListener(新View.OnClickListener()
{
@覆盖
公共无效的onClick(视图v)
{
//没做什么;
}
});
}
});
}
至少有由食提示两个错误,第一个是关于 setOnShowListener
即说的方法setOnShowListener(新DialogInterface.OnShowListener(){})是未定义类型AlertDialog.Builder,另一种是在 builder.getButton(AlertDialog.BUTTON_NEUTRAL)
即说的方法getButton(INT)是未定义的类型AlertDialog.Builder。我只是想知道为什么它会引发错误监守我有这样做的权利,我认为。每个人都必须想法解决它,谢谢!
[更新!]
谢谢大家的帮助。这是我对 setOnShowListener最后一个方法()
dialog.setOnShowListener(新DialogInterface.OnShowListener()
{
@覆盖
公共无效昂秀(DialogInterface对话)
{
按钮检索=((AlertDialog)对话框).getButton(AlertDialog.BUTTON_NEUTRAL);
retrieve.setOnClickListener(新View.OnClickListener()
{
@覆盖
公共无效的onClick(视图v)
{
datasource.opentoread();
的String [] =哈日datasource.fetchDaily(ids.getText()的toString());
datasource.close();
day.setText(将String.valueOf(哈日[0]));
subject.setText(将String.valueOf(哈日[1]));
time.setText(将String.valueOf(哈利[2]));
location.setText(将String.valueOf(哈日[3]));
lecture.setText(将String.valueOf(哈日[4]));
Toast.makeText(getApplicationContext(),检索成功,Toast.LENGTH_LONG).show();
}
});
}
});
返回对话框;
第一个是上说:该方法setOnShowListener(新DialogInterface.OnShowListener(){})是未定义的类型AlertDialog.Builder的setOnShowListener
块引用>有两个原因,你会得到一个错误与此:
builder.setNegativeButton(R.string.cancel,NULL);
返回builder.create();builder.setOnShowListener(新DialogInterface.OnShowListener()...
- 您将永远不会调用
收益
后达成任何code。setOnShowListener()
是AlertDialog的方法,而不是AlertDialog.Builder。
这是说的方法getButton(INT)是未定义的类型AlertDialog.Builder
块引用>这是同样的问题,
getButton()
是AlertDialog的方法,而不是AlertDialog.Builder。尝试是这样的:
...
builder.setNegativeButton(R.string.cancel,NULL);最后AlertDialog DLG = builder.create();
dlg.setOnShowListener(新DialogInterface.OnShowListener()
{
@覆盖
公共无效昂秀(DialogInterface对话)
{
按钮检索= dlg.getButton(AlertDialog.BUTTON_NEUTRAL);
//改变了这种^^^
retrieve.setOnClickListener(新View.OnClickListener()
{
@覆盖
公共无效的onClick(视图v)
{
//没做什么;
}
});
}
});
返回DLG;I want to set my setOnShowListener() method to prevent dialog from closing, so I write something like this,
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; } }); } }); }
At least there are two error prompted by eclipse, the first one is on the
setOnShowListener
that say "The method setOnShowListener(new DialogInterface.OnShowListener(){}) is undefined for the type AlertDialog.Builder" and the other one is on thebuilder.getButton(AlertDialog.BUTTON_NEUTRAL)
that say "The method getButton(int) is undefined for the type AlertDialog.Builder". I just wonder why it raises errors becuase I have do it right I think. Does everyone have an idea to fix it, thanks.[UPDATE!!] Thanks everybody for your help. This is my final methoD on
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;
解决方案the first one is on the setOnShowListener that say "The method setOnShowListener(new DialogInterface.OnShowListener(){}) is undefined for the type AlertDialog.Builder"
There are two reasons why you'll get an error with this:
builder.setNegativeButton(R.string.cancel, null); return builder.create(); builder.setOnShowListener(new DialogInterface.OnShowListener() ...
- You will never reach any code after calling
return
.setOnShowListener()
is a method in AlertDialog, not AlertDialog.Builder.
that say "The method getButton(int) is undefined for the type AlertDialog.Builder"
This is the same problem,
getButton()
is a method in AlertDialog, not AlertDialog.Builder.
Try something like this:
... builder.setNegativeButton(R.string.cancel, null); final AlertDialog dlg = builder.create(); dlg.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { Button retrieve = dlg.getButton(AlertDialog.BUTTON_NEUTRAL); // Changed this ^^^ retrieve.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //do nothing; } }); } }); return dlg;
这篇关于日食检测到setOnShowListener执行错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!