PromptDialog、AlertDialog演示类

使用菜单触发:

switch (id){
    case R.id.action0:
        Log.i(TAG,"Action0");
        FragmentTransaction ftrn = getFragmentManager().beginTransaction();
        AlertDialog ad = new AlertDialog().newInstense("Alert信息:","恭喜您中奖了!",1);
        ad.show(ftrn,TAG);

        break;
    case R.id.action1:
        Log.i(TAG,"Action1");
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        PromptDialog pd = new PromptDialog().newInstense("请输入新的手机号码:","例如:13300018888");
        pd.show(ft,TAG);
        break;
    case R.id.action2:
        Log.i(TAG, "Action2");
        Toast.makeText(MainActivity.this,"Toast信息框",Toast.LENGTH_LONG).show();
        break;
    default:
        Log.i(TAG,"Nothing");
        break;
}


AlertDialog.class源代码:

package com.lanxin.dialogtest;


import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;

/**
 * Created by Administrator on 2016/5/4 0004.
 */
public class AlertDialog extends DialogFragment implements DialogInterface.OnClickListener {

    private static final String TAG = "AlertDialog";
    private static int butType = 0;

    /**
     * 信息框初始化
     * @param title 信息标题
     * @param msg 信息内容
     * @param but 按钮 0、2:OK NO;1:OK
     * @return
     */
    public static AlertDialog newInstense(String title,String msg,int but){
        AlertDialog adf = new AlertDialog();
        Bundle bundle = new Bundle();

        bundle.putString("message",msg);//映射消息
        bundle.putString("title",title);//映射消息标题
        adf.setArguments(bundle);//设置消息

        butType = but;

        return adf;
    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.setCancelable(true);
        int style = DialogFragment.STYLE_NORMAL, theme = 0;
        setStyle(style, theme);
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState)
    {
        android.app.AlertDialog.Builder adb = new android.app.AlertDialog.Builder(getActivity())
                .setTitle(this.getArguments().getString("title"));
        if(butType == 0 || butType == 2){
            adb.setPositiveButton(R.string.ok,this).setNegativeButton(R.string.no, this);
        }else{
            adb.setPositiveButton(R.string.ok,this);
        }


        adb.setMessage(this.getArguments().getString("message"));

        return adb.create();
    }

    /**
     *
     * @param dialog
     * @param which -1:OK按钮,-2:取消按钮
     */
    @Override
    public void onClick(DialogInterface dialog, int which) {
            Log.i(TAG,"点击了我"+which);
            dialog.dismiss();
    }
}

PromptDialog.class源代码:

package com.lanxin.dialogtest;

import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

/**
 * Created by Administrator on 2016/5/4 0004.
 */
public class PromptDialog extends DialogFragment implements View.OnClickListener {

    private static final String TAG = "PromptDialog";
    private EditText editText;

    public static PromptDialog newInstense(String title,String msg){
        PromptDialog pdl = new PromptDialog();
        Bundle bundle = new Bundle();


        bundle.putString("message", msg);//映射消息
        bundle.putString("title", title);//映射消息标题
        pdl.setArguments(bundle);//设置消息

        return pdl;
    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.setCancelable(true);
        int style = DialogFragment.STYLE_NORMAL, theme = 0;
        setStyle(style, theme);
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle icicle)
    {
        View v = inflater.inflate(R.layout.prompt,container,false);
        TextView tv = (TextView)v.findViewById(R.id.prompt_text);

        String title = this.getArguments().getString("title");
        if(!title.equals("")){
            tv.setText(title);
        }

        editText = (EditText)v.findViewById(R.id.prompt_edit);
        Button but_ok = (Button)v.findViewById(R.id.btn_ok);
        Button but_no = (Button)v.findViewById(R.id.btn_no);

        but_ok.setOnClickListener(this);
        but_no.setOnClickListener(this);

        if(icicle!=null){
            editText.setText(icicle.getCharSequence("message"));

        }


        return v;
    }

    @Override
    public void onSaveInstanceState(Bundle icicle) {
        icicle.putCharSequence("message", editText.getText());
        super.onPause();
    }

    @Override
    public void onCancel(DialogInterface di) {
        Log.v(TAG, "onCancel");
        super.onCancel(di);
    }

    @Override
    public void onDismiss(DialogInterface di) {
        Log.v(TAG, "onDismiss");
        super.onDismiss(di);
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id){
            case R.id.btn_ok:
                Log.i(TAG, "您输入:" + editText.getText());

                break;
            case R.id.btn_no:
                Log.i(TAG,"你放弃输入");

                break;
            default:
                break;
        }
        dismiss();

    }
}

prompt.xml源代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:padding="4dip"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="@string/tip1"
        android:layout_gravity="center_vertical|center_horizontal"
        android:textAppearance="?android:textAppearanceMedium"
        android:gravity="top|center_horizontal"
        android:id="@+id/prompt_text"/>

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/prompt_edit"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:textAppearance="?android:textAppearanceMedium"/>

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <TableRow>
        <Button android:id="@+id/btn_no"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/no">
        </Button>

        <Button android:id="@+id/btn_ok"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/ok"
            android:layout_weight="1">
        </Button>

        </TableRow>
    </TableLayout>
</LinearLayout>

源代码下载:http://pan.baidu.com/s/1bp0p1L1

Leave a Comment

 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |