Android 构建自定义AlertDialog,如何实现按钮点击?
此按钮单击完全没有响应。如何使这段代码工作Android 构建自定义AlertDialog,如何实现按钮点击?,android,button,listener,adapter,Android,Button,Listener,Adapter,此按钮单击完全没有响应。如何使这段代码工作 顺便说一下,我在适配器中使用了这段代码。您注册的onCLickListener是不是DialogInterface.onCLickListener?如果您在视图类中使用了onCLickListener,那么在这里就不起作用了。请再检查一下 你需要做什么 final AlertDialog builder = new AlertDialog.Builder(activity).create(); LayoutInflater factory = Layo
顺便说一下,我在适配器中使用了这段代码。您注册的
onCLickListener
是不是DialogInterface.onCLickListener
?如果您在视图类中使用了onCLickListener
,那么在这里就不起作用了。请再检查一下
你需要做什么
final AlertDialog builder = new AlertDialog.Builder(activity).create();
LayoutInflater factory = LayoutInflater.from(activity);
View view = factory.inflate(R.layout.inventory_item_pop_up, null);
builder.setView(view);
ImageButton discardButton = (ImageButton) view.findViewById(R.id.popup_discard);
discardButton.setClickable(true);
discardButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
listener.remove(f);
builder.dismiss();
}
});
您已注册的
onCLickListener
是否为DialogInterface.onCLickListener
?如果您在视图类中使用了onCLickListener
,那么在这里就不起作用了。请再检查一下
你需要做什么
final AlertDialog builder = new AlertDialog.Builder(activity).create();
LayoutInflater factory = LayoutInflater.from(activity);
View view = factory.inflate(R.layout.inventory_item_pop_up, null);
builder.setView(view);
ImageButton discardButton = (ImageButton) view.findViewById(R.id.popup_discard);
discardButton.setClickable(true);
discardButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
listener.remove(f);
builder.dismiss();
}
});
嗯,这很尴尬。。。代码是正确的,我只是没有调用正确的createDialog()方法。嗯,这很尴尬。。。代码是正确的,我只是没有调用正确的createDialog()方法。我希望这会对您有所帮助。我用这种方式实现自定义对话框 下面显示了我的updatepopup.xml
我希望这对你有帮助。我用这种方式实现自定义对话框
下面显示了我的updatepopup.xml
尝试添加
View
,然后像下面这样调用方法discardButton.setOnClickListener(newview.onClickListener())…
tested,不起作用。它已经是一个View.OnClickListener。有一个问题,您说此代码在适配器中。您能告诉适配器中的确切位置吗?您能显示更多的代码吗?尝试添加View
,然后像下面这样调用方法discardButton.setOnClickListener(new View.OnClickListener())…
尝试过,但未运行。它已经是一个View.OnClickListener。有一个问题,您说此代码在适配器中。您能告诉适配器中的确切位置吗?您能显示更多的代码吗?OnClickListener不使用DialogInterface.OnClickListener。DialogInterface仅在我想向dialogwindow本身添加按钮时才起作用;这是It’对话框视图中有一个imagebutton。哎呀……还有一件事,你能试着改变这个imagebutton discardButton=(imagebutton)视图吗?findViewById(R.id.popup\u discard);
withimagebutton discardButton=(imagebutton)builder.findViewById(R.id.popup\u discard);
?OnClickListener不接受DialogInterface.OnClickListener.DialogInterface仅在我想向dialogwindow本身添加一个按钮时才起作用;这是对话框视图中的一个imagebutton。哎呀……还有一件事,你能尝试更改这个imagebutton discardButton=(imagebutton)视图。findViewById(R.id.popup\u discard);
使用图像按钮丢弃按钮=(图像按钮)builder.findViewById(R.id.popup_discard);
?
public void showUpdateDialog() {
updateDialog = new Dialog(this,
android.R.style.Theme_Translucent_NoTitleBar_Fullscreen) {
@Override
public void onBackPressed() {
this.dismiss();
loadDataAsync.execute();
}
};
updateDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
updateDialog.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
updateDialog.setContentView(R.layout.updatepopup);
logger.info("Network error popup on");
updateDialog.setCancelable(true);
ImageView dialogImage = (ImageView) updateDialog
.findViewById(R.id.dialogheaderimageupdateupdate);
dialogImage.setBackgroundResource(R.drawable.infoimage);
TextView dialogMesage = (TextView) updateDialog
.findViewById(R.id.dialogmessgetextupdate);
TextView currVersion = (TextView) updateDialog
.findViewById(R.id.currentversionupdate);
TextView newVersion = (TextView) updateDialog
.findViewById(R.id.newversionupdate);
TextView dialogHeader = (TextView) updateDialog
.findViewById(R.id.dialogheadertextupdate);
newVersion.setText("Latest version: " + versionCode);
currVersion.setText("Current version : " + currentVersionName);
dialogMesage.setText("Would you like to update now?");
dialogHeader.setText("A program update is available! ");
Button dialogOk = (Button) updateDialog
.findViewById(R.id.dialogokbuttonupdate);
dialogOk.setText("Update");
dialogOk.setFocusable(true);
dialogOk.requestFocus();
dialogOk.setFocusableInTouchMode(true);
dialogOk.requestFocus();
Button dialogCancel = (Button) updateDialog
.findViewById(R.id.dialogcancelbuttonupdate);
dialogOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
updateDialog.dismiss();
downLoad = new DownLoad();
downLoad.execute(apkUrl.trim());
}
});
dialogCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
updateDialog.dismiss();
loadDataAsync.execute();
}
});
try {
updateDialog.show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/layoutsample"
style="@android:style/Theme.Black.NoTitleBar.Fullscreen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/dialoghdrbg"
android:orientation="horizontal" >
<ImageView
android:id="@+id/dialogheaderimageupdateupdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/dialogheadertextupdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:layout_marginLeft="1dp"
android:gravity="center_vertical|right"
android:textColor="#000000"
android:textSize="25dp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/dialogcontentbg"
android:gravity="center_horizontal|center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/currentversionupdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#ffffff"
android:textSize="23dp"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/newversionupdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#ffffff"
android:textSize="23dp" />
<TextView
android:id="@+id/dialogmessgetextupdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#ffffff"
android:textSize="23dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|center_horizontal"
android:layout_marginTop="15dp"
android:gravity="center|center_horizontal"
android:orientation="horizontal" android:layout_marginBottom="10dp">
<Button
android:id="@+id/dialogokbuttonupdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:background="@drawable/buttonanimation"
android:text="@string/OKButton"
android:textSize="20dp"
android:textStyle="bold" />
<Button
android:id="@+id/dialogcancelbuttonupdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:background="@drawable/buttonanimation"
android:text="@string/CancelButton"
android:textSize="20dp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>