欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

第二章吸引你的眼球—UI編程(7) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

第二章吸引你的眼球—UI編程(7)

發(fā)表時(shí)間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):56

2.3 簡單清楚明了的消息提示框(Toast)和對話框(Dialog)

2.3.1Toast提示


很多時(shí)刻,我們須要對用戶供給一些提示信息。比如,當(dāng)用戶登入應(yīng)用法度榜樣時(shí),提示用戶“應(yīng)用法度榜樣須要更新”;當(dāng)用戶在輸入框輸入文本時(shí),提示用戶“最多能輸入30個(gè)字符”。這些需求,Toast輕松就能搞定!
Toast是Android供給的“快顯訊息”類。Toast應(yīng)用起來異常簡單,只須要簡單的代碼就能實(shí)現(xiàn)。

Toast.makeText(Context context, CharSequence text,int duration).show();

 
這里有三個(gè)參數(shù),第一個(gè)為當(dāng)前的Context;第二個(gè)為要顯示的提示信息;第三個(gè)則為提示信息顯示的時(shí)光周期,Toast中有兩個(gè)靜態(tài)常量LENGTH_LONG和LENGTH_SHORT。當(dāng)然如不雅你已經(jīng)把提示信息存入了資本文件中,則也可以用以下的代率攀來實(shí)現(xiàn)。

Toast.makeText(Context context,int resId,int duration).show();

 
其他參數(shù)不變,只是第二個(gè)參數(shù)改成了資本ID。
我們在一個(gè)叫ToastActivity的Activity中寫一個(gè)簡單的Toast提示來看看它的效不雅吧。

Toast.makeText(ToastActivity.this,
 "應(yīng)用Toast提示", Toast.LENGTH_LONG).show();

 
效不雅如圖2-20所示:
[img]http://img.blog.csdn.net/20150104092750465?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJ1aTMxOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
圖2-20 Toast的應(yīng)用

2.3.2Dialog提示


Toast的應(yīng)用無疑是很便利的,然則有些時(shí)刻,Toast并不克不及知足我們的需求。因?yàn)榭赡芪覀儾⒉粌H僅知足于給用戶提示一些信息,而是欲望給用戶提示一些信息之后,用戶可以有更多本身的選擇。比如,當(dāng)用戶點(diǎn)擊“退出”按鈕的時(shí)刻,我們給用戶提示“是否真的選擇退出”,因?yàn)橛锌赡堋巴顺觥卑粹o是用戶不當(dāng)心點(diǎn)擊到的,當(dāng)用戶再點(diǎn)擊“肯定”時(shí),則真的退出應(yīng)用;如不雅用戶點(diǎn)擊“撤消”則返回應(yīng)用。如許的話,Toast就不克不及知足于如許的需求了,于是我們的Dialog對話框就呼之欲出了。
在Android中,我們要實(shí)現(xiàn)對話框可以應(yīng)用AlertDialog.Builder類,也可以自定義對話框,下面我們分別經(jīng)由過程一個(gè)例子來對它們加以解釋。
 
1)應(yīng)用AlertDialog.Builder類創(chuàng)建對話框
在應(yīng)用這種方法創(chuàng)建對話框之前,我們先來懂得一下AlertDialog.Builder中幾個(gè)常用的辦法。

setTitile(); // 給對話框設(shè)置title
setIcon(); // 給對話框設(shè)置擱筆
setMessage(); // 給對話框設(shè)置提示信息
setPositiveButton(); // 給對話框添加“YES”按鈕
setNeutralButton(); // 給對話框添加“NO”按鈕

 
下面,我們就來創(chuàng)建一個(gè)對話框,彈出一個(gè)標(biāo)題為“提示信息”,信息內(nèi)容為“肯定退出嗎”,并有一個(gè)“肯定”按鈕和一個(gè)“撤消”按鈕,并為“肯定”按鈕添加事宜監(jiān)聽,代碼如下:

new AlertDialog.Builder(this).setTitle("提示信息").
        setMessage("肯定退出嗎").
        setPositiveButton("肯定", new DialogInterface.OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 finish();
             }
        }).
        setNegativeButton("撤消", null).
        show();

 
下面,我們來看看效不雅,如圖2-21所示:
[img]http://img.blog.csdn.net/20150104092808436?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJ1aTMxOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
圖2-21AlertDialog的應(yīng)用
 
固然我們沒有對“撤消”按鈕添加事宜監(jiān)聽,但在這個(gè)對話框中,當(dāng)我們點(diǎn)擊“撤消”按鈕時(shí),對話框一樣會被封閉,這是因?yàn)閟etNegativeButton()默認(rèn)就會封閉對話框。
2)自定義對話框
很多時(shí)刻,我們根據(jù)腥纈須要本身來設(shè)計(jì)對話框。下面,我們也以一個(gè)例子來看看自定義對話框是若何實(shí)現(xiàn)的。
起首,我們新建一個(gè)構(gòu)造文件dialog.xml,并在個(gè)中定義好對話框:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
            android:id="@+id/bg_pic"
            android:layout_width="260dp"
            android:layout_height="150dp"
            android:layout_centerHorizontal="true"
            android:background="@drawable/dialog_bg"/>
    <ImageView
            android:id="@+id/close_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@id/bg_pic"
            android:background="@drawable/close"/>
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="自定義Dialog"
            android:textColor="@android:color/black"
            android:layout_centerInParent="true"/>
</RelativeLayout>

 
在這個(gè)對話框中,我們定義了一個(gè)Button,一個(gè)TextView。接下來,我們定義一個(gè)MyDialog持續(xù)自Dialog。

// import略
public class MyDialog extends Dialog{
 
    private LayoutInflater factory;
 
    public MyDialog(Activity act) {
        super(act);
        factory = LayoutInflater.from(act);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(factory.inflate(R.layout.dialog, null));
    }
}

 
然后,我們在一個(gè)Activity的onCreate辦法中來看看效不雅吧:

new MyDialog(this).show();

 
效不雅如圖2-22所示:
[img]http://img.blog.csdn.net/20150104092840046?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJ1aTMxOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
圖2-22 自定義Dialog的應(yīng)用
 
似乎并沒有達(dá)到我們想要的效不雅,膳綾擎多出來了一塊,并且外面也有邊框,這些都不是我們想要的。這是因?yàn)檫@些都是Dialog默認(rèn)的格局,如不雅我們不須要的話,我們須要為它添加我們本身的樣式,我們在values目次下新建一個(gè)styles.xml樣式文件,輸入內(nèi)容如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="mydialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>
</resources>

 
在這個(gè)樣式傍邊,第一個(gè)屬性我們把Dialog設(shè)置為無title;第二個(gè)屬性就是把邊框設(shè)為透明,然后修改MyDialog的構(gòu)造辦法如下所示:

public MyDialog(Activity act) {
    super(act,R.style.mydialog);
    factory = LayoutInflater.from(act);
}

 
下面,我們再來看看效不雅,如圖2-23所示:
[img]http://img.blog.csdn.net/20150104092839808?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJ1aTMxOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
圖2-23 自定義Dialog中使悠揭捉式
 
同樣的,我們也可以在MyDialog中監(jiān)聽Diglog中組件的各類事宜進(jìn)行響應(yīng)的處理,例如,當(dāng)點(diǎn)擊“X”擱筆時(shí)封閉該Dialog:

ImageView closeView = (ImageView) findViewById(R.id.close_view);
closeView.setOnClickListener(new View.OnClickListener() {
   
    @Override
    public void onClick(View v) {
        MyDialog.this.dismiss();
    }
});

相關(guān)案例查看更多