【发布时间】:2011-12-30 06:22:44
【问题描述】:
我的 xml 文件中有 2 个带有 RelativeLayout 的按钮。在我的课堂上,我扩展了 Dialog 并实现了 OnClickListener,还添加了 OnClick(View v) 方法。但是不知何故,单击按钮时永远不会执行 onClick 代码。谁能帮我找出我的代码的问题:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical"
android:padding="10px">
......
<Button android:id="@+id/saveBtn_settingDlg" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_below="@+id/editText1"
android:layout_marginLeft="10px" android:text="Save" />
<Button android:id="@+id/closeBtn_settingDlg" android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Close" android:layout_alignBaseline="@+id/saveBtn_setting"
android:layout_toRightOf="@+id/saveBtn_setting" android:onClick="CloseDialog" />
类
public class SettingDialog extends Dialog implements OnClickListener {
private Button btn_save, btn_close;
// In Constructor
btn_save = (Button) findViewById(R.id.saveBtn_settingDlg);
btn_close = (Button) findViewById(R.id.closeBtn_settingDlg);
btn_save.setOnClickListener(this);
btn_close.setOnClickListener(this);
@Override
public void onClick(View v) {
if (v == btn_save)
SaveSettings();
else if (v == btn_close)
CloseDialog();
return;
}
private void CloseDialog() {
disposeAll();
this.dismiss();
}
public void CloseBtnClicked(View v) {
CloseDialog();
}
在关闭 btn 的 xml 中,我也尝试了 CloseBtnClicked,但没有区别,我收到 UnexpectedError 消息并且应用程序关闭。不知何故,事件只是没有以任何方式被激活。此外,在将 onClick 添加到 closebtn 时,该按钮现在显示在屏幕的左上角并且丢失了它的实际位置。
从 Activity 类调用 SettingDialog :
private void OpenSettingDialog() {
AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setIcon(R.drawable.ic_dialog_small);
View inflatedView = LayoutInflater.from(this).inflate(R.layout.settings_dialog, null);
ad.setView(inflatedView);
AlertDialog adlg = ad.create();
adlg.show();
}
谁能帮我知道这个问题的原因以及如何解决它。我是 Android 新手。
谢谢
【问题讨论】:
-
this可以帮你
标签: android button click onclick