Android自定义对话框的实现


Android自定义对话框的思路就是编写对话框的布局文件xml,然后在对话框中显示不同的控件。以下以显示文本控件为例(ImageView等都可以显示)。

1.布局文件connect_dlg.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_height="wrap_content"
 android:layout_width="fill_parent"
 android:background="#ffffffff"
  android:orientation="vertical"
 android:id="@+id/llToast" >
 <TextView
  android:layout_height="wrap_content"
  android:layout_margin="1dip"
  android:textColor="#ffffffff"
  android:layout_width="fill_parent"
  android:gravity="center"
  android:textSize="16sp"
  android:background="#FF129de2"
  android:id="@+id/tvTitleToast" />
 <LinearLayout
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:id="@+id/llToastContent"
  android:layout_marginLeft="1dip"
  android:layout_marginRight="1dip"
  android:layout_marginBottom="1dip"
  android:layout_width="wrap_content"
  android:padding="15dip"
  android:background="#FFFFFFFF" >
  <TextView
   android:layout_height="wrap_content"
   android:paddingRight="10dip"
   android:paddingLeft="10dip"
   android:layout_width="wrap_content"
   android:gravity="center"
   android:textSize="16sp"
   android:textColor="#FFff6699"
   android:id="@+id/tvTextToast" />
 </LinearLayout>
 <LinearLayout
            android:id="@+id/MyLayout_ad2"
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="40sp">
              <com.tencent.exmobwin.banner.TAdView
                  android:id="@+id/adview2"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:gravity="top|right" >
              </com.tencent.exmobwin.banner.TAdView>
      </LinearLayout>
</LinearLayout>

2.编写显示对话框函数。ShowConnectDialog(String textString)

private void ShowConnectDialog(String textString) {
  LinearLayout loginLayout1 = (LinearLayout) getLayoutInflater().inflate(
    R.layout.connect_dlg, null);
  // adView.
  TextView title = (TextView) loginLayout1
    .findViewById(R.id.tvTitleToast);
  title.setText("系统提示");
  TextView text1 = (TextView) loginLayout1.findViewById(R.id.tvTextToast);
  text1.setText(textString);
  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setView(loginLayout1);
  builder.setPositiveButton("下载MobCtrl服务器?", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    //处理确定按钮

   }
  });
  builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    // 处理取消按钮
    finish();
   }
  });
  builder.create().show();
 }

3.显示对话框。在需要显示的地方调用即可。

ShowConnectDialog("连接超时,请检查服务器是否开启及IP地址是否输入正确。确保电脑和手机连接在同一个网络内。");

4.效果

Android 4.4.4 发布下载

最简单的Ubuntu Touch & Android 双系统安装方式

在Nexus上实现Ubuntu和Android 4.4.2 双启动

Ubuntu 14.04 配置 Android SDK 开发环境

64位Ubuntu 11.10下Android开发环境的搭建(JDK+Eclipse+ADT+Android SDK详细)

Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法

Ubuntu 12.10 x64 安装 Android SDK

 

相关内容