`
Leif_冬
  • 浏览: 47606 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android 自定義的對話框(AlertActivity)

 
阅读更多

Step1:

自定義的對話框Activity:

public class EthernetConfigDialog extends AlertActivity implements AdapterView.OnItemSelectedListener, DialogInterface.OnClickListener,
       AlertController.AlertParams.OnPrepareListViewListener {
    private View mView;
    static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
    private RadioButton mDhcpRadioButton,mStaticIpRadioButton;
    private LinearLayout mStaticIpConfigLinearLayout;
    private EditText mIpAddressEditText,mGatewayEditText,mNetworkPrefixLengthEditText,mSubMaskEditText,mDnsFirstEditText,mDnsSecondEditText;
    private Spinner mEthernetDevicesSpinner,mStaticProxy;
    private String tIpAddressString="",tGatewayString="",tNetworkPrefixLengthString="",tSubMaskString,tDnsFirstString="",tDnsSecondString="";
    private String mEthernetDeviceSelect="",mConnectionTypeSelect="",mStaticProxySelect = "";
    private int tEthernetDeviceIndex = 0,tNetworkPrefixLength = 0;
    private EthernetManager mEthManager;
    private IpConfiguration config;
    private static final String PROXY_NONE = "NONE";
    private static final String PROXY_STATIC = "STATIC";
    private static final String PROXY_UNASSIGNED = "UNASSIGNED";
    private static final String PROXY_PAC = "PAC";
    private static final String CONNECT_TYPE_DHCP = "dhcp_connect";
    private static final String CONNECT_TYPE_STATIC = "static_connect";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final AlertController.AlertParams p = mAlertParams;
        p.mIsSingleChoice = true;
        p.mOnItemSelectedListener = this;
        p.mView = getLayoutInflater().inflate(R.layout.ethernet_ap_dialog, null);
        mView = p.mView;
        mDhcpRadioButton = (RadioButton) mView.findViewById(R.id.ethernet_dhcp);
        mStaticIpRadioButton = (RadioButton) mView.findViewById(R.id.ethernet_static_ip);
        mStaticIpConfigLinearLayout = (LinearLayout) mView.findViewById(R.id.static_ip_config);
        mEthernetDevicesSpinner = (Spinner) mView.findViewById(R.id.ethernet_devices);
        mStaticProxy = (Spinner) mView.findViewById(R.id.ethernet_proxy);
        mIpAddressEditText = (EditText) mView.findViewById(R.id.ip_address_input);
        mGatewayEditText = (EditText) mView.findViewById(R.id.gateway_input);
        mSubMaskEditText = (EditText) mView.findViewById(R.id.submask);
        mDnsFirstEditText = (EditText) mView.findViewById(R.id.dns1_input);
        mDnsSecondEditText = (EditText) mView.findViewById(R.id.dns2_input);
        mEthManager = (EthernetManager) getApplication().getSystemService(Context.ETHERNET_SERVICE);
        mStaticProxy.setOnItemSelectedListener(this);
        getEthernetConfigSettings();
        mDhcpRadioButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mConnectionTypeSelect = CONNECT_TYPE_DHCP;
                mStaticIpConfigLinearLayout.setVisibility(View.GONE);
            }
        });

        mStaticIpRadioButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mConnectionTypeSelect = CONNECT_TYPE_STATIC;
                mStaticIpConfigLinearLayout.setVisibility(View.VISIBLE);
            }
        });
        p.mPositiveButtonText = getString(com.android.internal.R.string.ok);
        p.mPositiveButtonListener = this;
        p.mNegativeButtonText = getString(com.android.internal.R.string.cancel);
        p.mPositiveButtonListener = this;
        p.mOnPrepareListViewListener = this;
        p.mTitle = getString(R.string.ethernet_dialog_title);
        setupAlert();
    }

    //旋轉屏幕時不會onCreate()
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

 Step2:

@Override
    public void onClick(DialogInterface dialog, int which) {
        boolean positiveResult = which == DialogInterface.BUTTON_POSITIVE;
        if (positiveResult) {
            getEthernetConfigData();
        }else{

        }
    }

 

 

Step3:

 

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="300sp"
         android:layout_height="wrap_content"
         android:fadeScrollbars="false">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:descendantFocusability="beforeDescendants"
            android:focusableInTouchMode="true"
            android:orientation="vertical">

        <TextView
            android:id="@+id/text_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:layout_marginLeft="18dp"
            android:layout_marginTop="8dp"
            android:text="@string/ethernet_devices_title"/>
        <Spinner
            android:id="@+id/ethernet_devices"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:prompt="@string/ethernet_eth0"
            android:entries="@array/ethernet_device"
            />
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:layout_marginLeft="18dp"
            android:layout_marginTop="8dp"
            android:text="@string/connection_type_title"
            />
        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/dhcp_title"
                android:checked="true"
                android:id="@+id/ethernet_dhcp"
                />
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/static_ip_title"
                android:id="@+id/ethernet_static_ip"
                />
        </RadioGroup>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/static_ip_config"
            android:orientation="vertical"
            android:visibility="gone"
            >
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/ip_address_title"
                android:layout_marginLeft="18dp"
                />
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/ip_address_input"
                android:hint="@string/hint_ip"
                android:inputType="phone"
                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/gateway_title"
                android:layout_marginLeft="18dp"
                />
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/hint_gateway"
                android:id="@+id/gateway_input"
                android:inputType="phone"
                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/submask_title"
                android:layout_marginLeft="18dp"
                />
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/hint_submask"
                android:id="@+id/submask"
                android:inputType="phone"
                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/proxy_title"
                android:layout_marginLeft="18dp"
                />
            <Spinner
                android:id="@+id/ethernet_proxy"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:prompt="@string/proxy_none"
                android:entries="@array/ethernet_static_proxy"
                />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/dns1_title"
                android:layout_marginLeft="18dp"
                />
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/hint_dns1"
                android:id="@+id/dns1_input"
                android:inputType="phone"
                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/dns2_title"
                android:layout_marginLeft="18dp"
                />
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/hint_dns2"
                android:id="@+id/dns2_input"
                android:inputType="phone"
                />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

 

Step4:

在AndroidManifest.xml裏添加Activity的聲明:

 

<activity android:name=".network.EthernetConfigDialog"
            android:theme="@*android:style/Theme.DeviceDefault.Settings.Dialog"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:enabled="true"
            android:excludeFromRecents="true">
</activity>

  

分享到:
评论

相关推荐

    android自定义对话框、dialog

    在Android开发中,自定义对话框(Dialog)是创建用户界面时经常需要用到的一种组件。它能够提供一种非模态或模态的方式与用户交互,显示临时的信息或者进行一些简单的操作选择。本文将深入探讨如何在Android中实现...

    Android例子源码自定义对话框

    在Android开发中,自定义对话框(Dialog)是常见的需求,它可以为用户提供更丰富的交互体验。自定义对话框可以按照应用程序的设计风格进行定制,包括布局、颜色、按钮样式等,从而提升应用的用户体验。本篇将围绕...

    安卓Android源码——android 自定义对话框.rar

    本资源“安卓Android源码——android 自定义对话框.rar”显然包含了关于如何在Android平台上创建和定制对话框的源代码示例。通过这个压缩包,我们可以学习到如何摆脱系统默认样式,设计出更符合应用风格的对话框。 ...

    Android应用源码之android 自定义对话框.zip

    在Android开发中,自定义对话框(Custom Dialog)是一个重要的组件,它允许开发者根据应用程序的UI风格和功能需求创建独特且交互性强的弹出界面。本压缩包中的资源提供了关于如何在Android应用中实现自定义对话框的...

    Android自定义对话框(代码)

    在Android开发中,自定义对话框(Custom Dialog)是一种常用的技术,它允许开发者根据应用的UI风格和功能需求创建个性化的对话框。本教程将详细讲解如何在Android中实现自定义对话框,并提供代码示例。 一、Android...

    android 自定义对话框

    在Android开发中,自定义对话框(Dialog)是一种常见的用户交互方式,用于向用户展示临时信息或进行简单操作选择。自定义对话框可以帮助我们更好地控制界面的显示样式,使其更符合应用的整体风格和用户需求。下面...

    Android自定义对话框Dialog(界面美化)

    在Android开发中,自定义对话框(Dialog)是提升用户体验的重要手段之一,它允许开发者根据应用的风格和需求创建独特且吸引人的交互界面。本文将深入探讨如何在Android中实现自定义对话框,并进行界面美化。 首先,...

    Android自定义对话框实现QQ退出界面

    在Android开发中,自定义对话框(Dialog)是一种常见的用户交互方式,它可以提供更为丰富的界面设计和用户体验。本文将深入探讨如何实现一个类似QQ退出界面的自定义对话框,包括其设计思路、关键代码实现以及可能...

    android 自定义对话框.zip源码资源下载

    在Android开发中,自定义对话框(Dialog)是常见的用户界面元素,用于向用户展示临时信息或进行简单交互。此资源包"android 自定义对话框.zip"提供了自定义对话框的源码,可以帮助开发者深入了解如何根据项目需求...

    Android自定义对话框

    在我们的日常项目中很多地方会用到对话框,但是Android系统为我们提供的对话框样子和我们精心设计的界面很不协调,在这种情况下我们想很自由的定义对话框,或者有的时候我们的对话框是一个图片,没有标题和按钮,...

    android自定义对话框加动画

    在Android开发中,自定义对话框(Dialog)是一种常见的用户交互方式,用于向用户展示临时信息或进行简单操作。为了使对话框更具吸引力和用户体验,我们常常会为它添加动画效果。下面将详细介绍如何在Android中实现...

    android 自定义对话框+捕捉返回和菜单键

    在Android开发中,自定义对话框(Custom Dialog)是一种常用的设计模式,用于向用户展示一些重要信息或进行关键操作的确认。本项目着重探讨如何创建一个自定义对话框,并实现对返回键和菜单键的监听功能,以提供更加...

    安卓Android源码——android 自定义对话框.zip

    本资源"安卓Android源码——android 自定义对话框.zip"包含了实现自定义对话框的源代码,这对于理解和实践Android应用的界面定制具有重要意义。 首先,我们要理解Android系统提供的默认对话框类`AlertDialog`和`...

    自定义对话框

    在Android开发中,自定义对话框(Dialog)是一种常见的用户界面元素,用于向用户展示临时信息或进行简短交互。自定义对话框可以提供比普通警告对话框更多的灵活性,允许开发者根据应用的品牌和功能需求定制样式和...

    Android系统对话框和自定义对话框实现

    本教程将深入讲解如何在Android系统中创建和使用标准对话框以及自定义对话框。 首先,Android系统提供了几种内置的对话框类型,包括AlertDialog、ProgressDialog、DatePickerDialog、TimePickerDialog等。这些...

    Android自定义对话框的使用

    在Android开发中,自定义对话框(Custom Dialog)是一个常用的功能,它允许开发者根据应用的UI风格和功能需求创建独特的对话框,以提供更丰富的用户体验。这篇博客文章“Android自定义对话框的使用”深入探讨了如何...

    自定义对话框的实现

    在Android应用开发中,自定义对话框是一种常见的需求,它能提供更加个性化和与应用风格一致的用户体验。本文将深入探讨如何实现一个类似开源中国Android客户端登录对话框的自定义对话框。 首先,我们需要理解对话框...

    Android自定义对话框.zip

    下面将详细介绍如何在Android中实现自定义对话框。 首先,创建自定义对话框通常涉及到以下几个步骤: 1. **定义布局**: - 在`res/layout`目录下创建一个新的XML布局文件,设计对话框的内容。这个布局可以包含...

    Android自定义加载对话框

    在Android开发中,自定义对话框(Custom Dialog)是一个常用的功能,它允许开发者根据应用的UI风格和需求创建独特、个性化的提示或加载界面。本文将深入探讨如何在Android中实现一个自定义加载对话框,以及如何实现...

Global site tag (gtag.js) - Google Analytics