android dialog 点击确定不消失,AlertDialog点击按钮不消失的实现方法
我有一個文本輸入對話框,當我點擊對話框上的“是”按鈕,它會驗證輸入,然后關閉對話框。
但是,如果輸入錯誤,我想停留在同一個對話框中.。
每一次,無論輸入是什么,對話框應該自動關閉,當我點擊“否”按鈕。我怎么才能禁用這個?在網上找了很多,大部分都是修改布局,添加取消確定什么的,這樣并不理想。
現在有個好方案,記錄下來先:
//重寫“確定”(alertdialog.button_positive),截取監聽
dialog.getbutton(alertdialog.button_positive).setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view view) {
toast.maketext(mainactivity.this,"getbutton(alertdialog.button_positive)", toast.length_long).show();
//這里可以控制是否讓對話框消失
dialog.dismiss();
}
});
完整java代碼如下:
package com.github.azhansy.dialognotdismissdemo;
import android.content.dialoginterface;
import android.support.v7.app.alertdialog;
import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.view.view;
import android.widget.edittext;
import android.widget.imageview;
import android.widget.toast;
public class mainactivity extends appcompatactivity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
}
//這里隨便在主布局加個監聽事件即可
public void onclicktext(view vv){
alertdialog.builder builder = new alertdialog.builder(this);
builder.settitle("對話框標題");
view view = view.inflate(this, r.layout.dialog_input_link, null);
final edittext linkedt = (edittext) view.findviewbyid(r.id.edt_input_link);
imageview cleariv = (imageview) view.findviewbyid(r.id.iv_clear_link);
builder.setview(view);
cleariv.setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view view) {
linkedt.gettext().clear();
}
});
builder.setpositivebutton(android.r.string.ok, new dialoginterface.onclicklistener() {
@override
public void onclick(dialoginterface dialoginterface, int i) {
toast.maketext(mainactivity.this,"確定", toast.length_long).show();
}
});
builder.setnegativebutton(android.r.string.cancel, new dialoginterface.onclicklistener() {
@override
public void onclick(dialoginterface dialoginterface, int i) {
toast.maketext(mainactivity.this,"取消", toast.length_long).show();
}
});
final alertdialog dialog = builder.create();
dialog.setcanceledontouchoutside(false);
dialog.show();
//重寫“確定”,截取監聽
dialog.getbutton(alertdialog.button_positive).setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view view) {
toast.maketext(mainactivity.this,"getbutton(alertdialog.button_positive)", toast.length_long).show();
//這里可以控制是否讓對話框消失
dialog.dismiss();
}
});
}
}
對話框布局:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingleft="10dp"
android:paddingright="10dp">
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:id="@+id/edt_input_link"
android:layout_width="match_parent"
android:layout_height="48dp"
android:gravity="center_vertical"
android:maxlines="1"
android:paddingright="30dp"
android:textsize="16sp"
tools:text="fhafafa"/>
android:id="@+id/iv_clear_link"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignparentright="true"
android:layout_centerinparent="true"
android:scaletype="center"
android:src="@drawable/ic_clear"/>
以上所述是小編給大家介紹的alertdialog點擊按鈕不消失的實現方法,希望對大家有所幫助
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的android dialog 点击确定不消失,AlertDialog点击按钮不消失的实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 算法精解----3、单链表
- 下一篇: svn由于连接方在一段时间后没有正确答复
