Android设置AlertDialog中按钮的可用(Enable)状态

弹出一个保存文件的对话框,要控制输入内容限制,同时内容为空时保存按钮不可用。直接上代码:

LayoutInflater mInflater = LayoutInflater.from(mActivity);
View saveView = mInflater.inflate(R.layout.alert_dlg_save, null);
// 设置输入文件名的EditText属性
final EditText filename = (EditText) saveView.findViewById(R.id.dlg_save_input_filename);
filename.setFilters(new InputFilter[] {new InputFilter.LengthFilter(255), new SpecialFilter() });
filename.setText(mStrAsName);

TextView defaultPath = (TextView) saveView.findViewById(R.id.dlg_save_default_path);
defaultPath.setText(DataStruct.gFloder + "/");

AlertDialog.Builder builder = new AlertDialog.Builder(mActivity, AlertDialog.THEME_HOLO_LIGHT);
builder.setTitle(R.string.maker_menu_save);
builder.setIcon(R.drawable.icon_small);
builder.setView(saveView);
builder.setPositiveButton(R.string.maker_menu_save,
    new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog,int which) {
        // TODO Auto-generated method stub
        String name = filename.getText().toString().trim();

        name += ".astp";
        String namePath = DataStruct.gFloder + "/" + name;
        if (saveFile(namePath)) {
            mStrSavedPath = namePath;
            mBtnSave.setEnabled(false);
        } else {
            ToastFailedSave();
        }
    }
});
builder.setNegativeButton(R.string.btn_cancel,
    new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog,int which) {
        // TODO Auto-generated method stub

        }
    });

Dialog dialog = builder.create();
dialog.show();
// 获取PositiveButton 重点在这里
final Button btn = ((AlertDialog) dialog).getButton(DialogInterface.BUTTON_POSITIVE);
// 输入不能为空
filename.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start,int before, int count) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start,int count, int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
        String name = s.toString().trim();
        if (name.isEmpty())
            btn.setEnabled(false);
        else
            btn.setEnabled(true);
    }
});
时间: 2024-10-06 22:15:48

Android设置AlertDialog中按钮的可用(Enable)状态的相关文章

同时满足多个文本框不为空值按钮呈现可用激活状态disabled

项目需要,自己写了一个jquery代码,该代码需要满足两个文本框都不为空值,按钮才可用激活状态. 请转载此文的朋友务必附带原文链接,谢谢. 原文链接:http://xuyran.blog.51cto.com/11641754/1827959 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content=&quo

css中按钮的四种状态

css中按钮有四种状态 1. 普通状态2. hover 鼠标悬停状态3. active 点击状态4. focus 取得焦点状态 .btn:focus{outline:0;} 可以去除按钮或a标签点击后的蓝色边框 下面的例子中.btn1用focus按钮会按下,不弹起 .btn2用active按钮点击按下,会弹起 <button class="btn btn1">Save Settings</button> <button class="btn bt

android的alertdialog中加入edittext但是不弹出软键盘等问题的解决与原因

摘要:alertdialog中加入edittext但是不弹出软键盘等问题网上有很多不管用的解决方案, 本文意在给出更有效的解决办法,并初步探究其原因 正文 在对话框中插入文本框是十分常见的需求 通常我们选择在代码中创建edittext对象 这个时候就需要在代码中给edittext设置输入属性了 但是经常发现设置的属性不起作用,甚至都不弹出软键盘(虽然实体键盘可以输入) 问题的解决方案有很多种,这里介绍一种我比较常用的方法: inputPassEditText.setInputType(Input

Android设置AlertDialog点击按钮对话框不关闭(转)

(转自:http://blog.csdn.net/winson_jason/article/details/8485524) 当我们在用到Android alertDialog创建对话框 的时候,我们会遇到一个问题就是:我们添加的按钮不论是用setNegativeButton还是用setPositiveButton添加的按钮,点击的时候,都会关闭对话框,但是我们的一 些实际需求,就需要保留这个对话框不动,例如输入校验码,密码之类的校验问题,如果用户输入错误,而关闭后弹出对话框,就很别扭了. 在网

Android设置AlertDialog打开后不消失

最近项目收尾,一堆bug要改,还要对用户操作体验做一些优化,也是忙的不行.周末难得清闲,出去逛逛,看看风景,还好因为习大大要来,南京最近的天气还不错,只是苦了当地的不少农民工,无活可干,无钱可拿.想想觉得自己已经算是幸运的了,心存感激,好好工作. 原文地址请保留 http://www.cnblogs.com/rossoneri/p/4150001.html 整理一下以前查过的东西,可惜笔记本没记多少资料博客的网址,没法贴源地址. 关于本文,是要满足一个需求: 打开一个自定义对话框之后,再点击按钮

Android课程---Activity中保存和恢复用户状态

onSaveInstanceState 保存 在暂停之后和保存之前调用 onRestoreInstanceState 恢复 再启动之后和显示之前调用 package com.example.chenshuai.excise; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View;

Android让AlertDialog点击确定不会消失

在Android的alertDialog中,使用自带的button,点击确定或者取消,都会关闭对话框.但我们有时候希望比如点击确定的时候发现他有没填的选项,我们提示他填写完整,这个时候不关闭对话框.当然解决办法,有很多.比如用个activity做dialog.或者自定义view.使用自己定义的button.不使用自带的button.但是有时候我们的dialog的view很简单,这个时候我们继续使用自带的button.这个时候该怎么办呢.可以利用的java的反射技术.在需要不关闭的按钮地方: tr

JS中设置按钮不可用的disabled属性

JS中可以通过document.getElementById("btn").disabled = true;来设置按钮不可用 也可以设置form表单中的textarea的disabled属性,可以让用户无法向textarea备注框内输入字符 document.getElementById("textarea").disabled = true; 带有一个禁用输入字段的 HTML 表单: <form action="form_action.asp&qu

Android中按钮的点击事件的四种写法

如题,在Android中按钮的点击事件有四种写法,如下图. 界面为四个Button+一个TextView+一个ImageView activity_main布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="