项目汇总之常见的对话框

项目中,经常会有弹出对话框,之前的文章有提到懒人dialog,不过那是第三方的,而现在这几个完全是自定义的,先看看效果:
项目汇总之常见的对话框_第1张图片
项目汇总之常见的对话框_第2张图片
项目汇总之常见的对话框_第3张图片

代码:

package com.gyq.utilstest;

import android.app.AlertDialog;
import android.graphics.drawable.AnimationDrawable;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.gyq.utilstest.base.ActivityFragmentInject;
import com.gyq.utilstest.base.BaseActivity;
import com.gyq.utilstest.utils.ToastUtil;
import com.gyq.utilstest.widget.ContainsEmojiEditText;


@ActivityFragmentInject(
        contentViewId = R.layout.activity_main,
        hasNavigationView = false,
        hasToolbar = true,
        toolbarTitle = R.string.lab_bind,
        toolbarLeftIcon = R.drawable.selector_back
)
public class MainActivity extends BaseActivity {
    private EditText mText;
    private Button mOk;
    private TextView mContent;

   // private

    @Override
    protected void findViewAfterViewCreate() {
        mText = (EditText)findViewById(R.id.edt_text);
        mOk = (Button)findViewById(R.id.btn_ok);
        mContent = (TextView)findViewById(R.id.tv_content);




    }

    @Override
    protected void initDataAfterFindView() {
        mOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /*String text = mText.getText().toString();
                MLog.d("ZM",text);

                if (!EditTextUtil.isAvailString(text,14)) {
                    MLog.d("ZM",text + ">>>>>>14");
                    ToastUtil.showToast(getString(R.string.device_name_too_long));
                    return;
                }

                mContent.setText(text);*/
                //中间对话框
                showDialog();

                //showVersionDialog();

                //updateDoorDialog();

            }
        });

       // mPayInput.onClick(mContent);
    }

    @Override
    public void leftIconClick(View view) {

    }

    private AlertDialog dialog;
    private void showDialog(){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        dialog = builder.create();
        View view = View.inflate(this,R.layout.dialog_delete_edit,null);
        TextView txtUse = (TextView) view.findViewById(R.id.txt_use);
        TextView txtEdit = (TextView) view.findViewById(R.id.txt_edit);
        TextView txtDelete = (TextView) view.findViewById(R.id.txt_delete);
        txtUse.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();

            }
        });
        txtEdit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();

            }
        });
        txtDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();

            }
        });

        dialog.setView(view);
        dialog.show();
    }

    @Override
    public void rightIconClick(View view) {
        finish();
    }

    private AlertDialog versionDialog;

    private void showVersionDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        versionDialog = builder.create();
        View view = View.inflate(this, R.layout.dialog_device_add_notice, null);
        final LinearLayout llBefore = (LinearLayout)view.findViewById(R.id.ll_before);
        final LinearLayout llAfter = (LinearLayout)view.findViewById(R.id.ll_after);
        final ImageView imgWaiting = (ImageView) view.findViewById(R.id.img_config_icon1);
        //final TextView txtMsg = (TextView) view.findViewById(R.id.txt_msg);
        TextView txtTitle = (TextView) view.findViewById(R.id.txt_title);
        txtTitle.setText(getString(R.string.base_update_notice));
        final TextView txtMsg = (TextView) view.findViewById(R.id.txt_msg);
        TextView txtCancle = (TextView) view.findViewById(R.id.txt_cancle);
        txtMsg.setText(getString(R.string.base_need_update));
        txtMsg.setGravity(Gravity.CENTER);
        txtCancle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                versionDialog.dismiss();
            }
        });
        TextView txtOk = (TextView) view.findViewById(R.id.txt_ok);
        llBefore.setVisibility(View.VISIBLE);
        llAfter.setVisibility(View.GONE);
        txtOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //versionDialog.dismiss();
                //updateVersion();
                txtMsg.setText("正在搜索,请稍后...");
                llBefore.setVisibility(View.GONE);
                llAfter.setVisibility(View.VISIBLE);

                AnimationDrawable animationDrawable = (AnimationDrawable) imgWaiting.getDrawable();
                if(animationDrawable != null){
                    animationDrawable.start();
                }
            }
        });
        versionDialog.setView(view);
        versionDialog.show();
    }


    private AlertDialog monNameDialog;
    private void updateDoorDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        monNameDialog = builder.create();
        View view = View.inflate(this, R.layout.dialog_mon_name, null);
        final ContainsEmojiEditText dgName = (ContainsEmojiEditText) view.findViewById(R.id.ed_name);

        view.findViewById(R.id.btn_confirm).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String newName = dgName.getText().toString().trim();
                if (TextUtils.isEmpty(newName)) {
                    ToastUtil.showToast("名称不能为空!");
                    return;
                }

                if (monNameDialog != null) monNameDialog.dismiss();

            }
        });
        view.findViewById(R.id.btn_cancle).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (monNameDialog != null) monNameDialog.dismiss();
            }
        });
        monNameDialog.setView(view);
        monNameDialog.show();
    }
}

布局文件:
1.dialog_mon_name.xml




    

    

        

        

            

            
        

    

    

        

2.dialog_device_add_notice.xml




    

        

        

        

            

            

        
    

    


        

        


    



3.dialog_delete_edit.xml




    

    

    

    

    


还有一些别的代码,会上传相应的demo。

你可能感兴趣的:(Android,进阶)