码迷,mamicode.com
首页 > 移动开发 > 详细

Android 自定义弹出对话框实例

时间:2015-04-13 21:09:32      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:android   对话框   自定义样式   音效开关   

    在编写代码过程中,对于弹出框,事先写好的布局文件往往不能满足我们的需求,这时我们需要自己定义样式。

1、首先新建一个xml文件,这里以设置音效开关为例

myview.xml如下:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    <TextView

        android:id="@+id/textView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignBottom="@+id/toggleButton1"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:text="@string/voice"

        android:textSize="20sp" />

    <ToggleButton

        android:id="@+id/toggleButton1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentTop="true"

        android:layout_toRightOf="@+id/textView1"

        android:text="ToggleButton"

        android:textOff="OFF"

        android:textOn="ON" />

</RelativeLayout>

技术分享

2、在代码中调用自定义视图

public void setSound(){

// 取得自定义View  

LayoutInflater layoutInflater = LayoutInflater.from(MainActivity.instance); //MainActivity.instance是在MainActivity.java中定义的,public static MainActivity instance;

View myLoginView = layoutInflater.inflate(R.layout.myview, null);

myToggleButton = (ToggleButton)myLoginView.findViewById(R.id.toggleButton1);

if(audio_on){

myToggleButton.setChecked(true);

}else{

myToggleButton.setChecked(false);

}

Dialog alertDialog = new AlertDialog.Builder(MainActivity.instance)

.setTitle("设置")

.setView(myLoginView)

.setIcon(android.R.drawable.ic_dialog_info) 

.setPositiveButton("确定",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

if(myToggleButton.isChecked()){

audio_on = true;

}else{

audio_on = false;

}

}

}).

create();

alertDialog.show();

}

这是游戏的菜单界面:

技术分享

点击设置后弹出设置音效开关对话框,调用setSound()方法:

技术分享

3、相关知识点补充

    在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。

具体作用:

1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;

2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。



Android 自定义弹出对话框实例

标签:android   对话框   自定义样式   音效开关   

原文地址:http://wty530.blog.51cto.com/3238860/1631877

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!