gpt4 book ai didi

android - 将 onClick 添加到对话框布局中没有类的按钮

转载 作者:行者123 更新时间:2023-11-29 22:01:28 26 4
gpt4 key购买 nike

我有存储按钮的对话框布局 xml 文件,并且我设置了 android:onClick="doSomething",但我没有任何类文件附加到该对话框。所以实际上 dialog_layout.xml 是我项目中唯一的文件。我能够显示它并能够与之交互,但我无法为对话框中的按钮创建 onClick 监听器。我尝试让启动我的对话框的 Activity 成为该对话框的所有者,然后在该 Activity 中创建 public void doSomething(View view) 但它似乎仍然不起作用。我收到此错误:

08-03 23:39:23.085: E/AndroidRuntime(6757): java.lang.IllegalStateException: Could not find a method doSomething(View) in the activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button with id 'button2'

知道我做错了什么吗?

编辑这是代码:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);

findViewById(R.id.button2).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Do something.
}
});




Preference keyP = (Preference) findPreference("keyP");
keyP.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {



Dialog dialog = new Dialog(SettingsActivity.this);
dialog.setContentView(R.layout.draws_dialog);
dialog.setTitle("Title");
dialog.show();

return true;
}
});

最佳答案

您的代码看起来不错,只是您需要按照建议从代码中添加按钮。加载对话框布局后,需要添加以下代码。请注意,您需要摆脱 xml 布局中的按钮,在这种情况下,android 将创建具有当前主题样式的按钮。

dialog.setButton(Dialog.BUTTON_POSITIVE, "Do something", 
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO do something here
}
});
return dialog;

如果您希望您的按钮具有特定的设计或功能,那么您可以使用以下方法:

dialog.setContentView(R.layout.draws_dialog);
Button myDialogButton = (Button)dialog.findViewById(R.id.my_button);
myDialogButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});

点击监听器可以从对话框生成主体中移出。

private DialogInterface.OnClickListener myButtonClickListener = new
DialogInterface.OnClickListener(DialogInterface dialog, int which) {
// TODO: do something here with click
});

对话生成主体将如下所示:

dialog.setButton(Dialog.BUTTON_POSITIVE, "Do something", myButtonClickListener);

关于android - 将 onClick 添加到对话框布局中没有类的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com