最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android dialog自定義實(shí)例詳解

 更新時(shí)間:2012年12月05日 14:18:19   作者:  
簡單的自定義dialog,該dialog具備以下功能:有一個(gè)窗口可以顯示文章、根據(jù)需求顯示,有需要的朋友可以參考下
本人工作有一個(gè)月多了。對于android很多東西,都有了新的了解或者說真正的掌握。為了讓更多的像我這樣的小白少走彎路,所以我會堅(jiān)持將我在工作中遇到的一些比較令我印象深刻的知識點(diǎn)整合出來給大家(順序是按照我工作到現(xiàn)在的時(shí)間來制作的,其實(shí)也是想給自己一個(gè)記錄吧。記錄自己一路走來以及以后的路,
至少我想找到曾經(jīng)的記錄都有了)。
第一個(gè)需求:簡單的自定義dialog
需求:創(chuàng)建一個(gè)dialog,該dialog具備以下功能
1.有一個(gè)窗口可以顯示文章
2.根據(jù)需求顯示
1)點(diǎn)擊同意(不同意),觸發(fā)對應(yīng)的事件(同意的事件會彈出一個(gè)Toast,不同意則會關(guān)閉程序)
2)點(diǎn)擊關(guān)閉,關(guān)閉dialog
1.在main.xml文件中設(shè)定一個(gè)按鈕,點(diǎn)擊會彈出dialog
復(fù)制代碼 代碼如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
android:id="@+id/btn"
android:background="@drawable/sl_btn_red" />
</RelativeLayout>

2.創(chuàng)建dialog的內(nèi)容布局,布局中設(shè)定了使用相對布局設(shè)定了三個(gè)按鈕,其中兩個(gè)一起出現(xiàn)(同意和不同意),另外一個(gè)單獨(dú)出現(xiàn)(關(guān)閉)默認(rèn)是兩個(gè)出現(xiàn)
復(fù)制代碼 代碼如下:

private TextView btnClose = null;
private TextView btnAgree = null;
private TextView btnDisagree = null;
private WebView mWebView = null;
public MyDialog(Context context) {
super(context, R.style.item_tnc_dialog);
setCancelable(false); // 阻止返回鍵的響應(yīng)
setContentView(R.layout.dialog_view);
getWindow().setLayout(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
setUpView();
}
private void setUpView() {
mWebView = (WebView) findViewById(R.id.item_tnc_dialog_webview);
btnClose = (TextView) findViewById(R.id.item_tnc_dialog_close);
btnAgree = (TextView) findViewById(R.id.item_tnc_dialog_agree);
btnDisagree = (TextView) findViewById(R.id.item_tnc_dialog_disagree);
btnClose.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dismiss();
}
});
btnDisagree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
System.exit(0);
}
});
btnAgree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "YOU SELECTED AGREE",
Toast.LENGTH_SHORT).show();
dismiss();
}
});
showDialog();
}
/** 加載webview的內(nèi)容 */
public void showDialog() {
String localHtml = "file:///android_asset/los.html";
if (mWebView != null) {
mWebView.getSettings().setDefaultTextEncodingName("utf-8");
mWebView.loadUrl(localHtml);
}
buttonsDisplayTwo(false);
}
/** 當(dāng)true的時(shí)候,出現(xiàn)同意和不同意兩個(gè)選項(xiàng),反之是關(guān)閉選項(xiàng) */
private void buttonsDisplayTwo(boolean two) {
btnAgree.setVisibility(two ? View.VISIBLE : View.GONE);
btnDisagree.setVisibility(two ? View.VISIBLE : View.GONE);
btnClose.setVisibility(two ? View.GONE : View.VISIBLE);
}

3.main.activity的代碼就不寫了。。直接寫自定義的dialog代碼
復(fù)制代碼 代碼如下:

private TextView btnClose = null;
private TextView btnAgree = null;
private TextView btnDisagree = null;
private WebView mWebView = null;
public MyDialog(Context context) {
super(context, R.style.item_tnc_dialog);
setCancelable(false); // 阻止返回鍵的響應(yīng)
setContentView(R.layout.dialog_view);
getWindow().setLayout(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
setUpView();
}
private void setUpView() {
mWebView = (WebView) findViewById(R.id.item_tnc_dialog_webview);
btnClose = (TextView) findViewById(R.id.item_tnc_dialog_close);
btnAgree = (TextView) findViewById(R.id.item_tnc_dialog_agree);
btnDisagree = (TextView) findViewById(R.id.item_tnc_dialog_disagree);
btnClose.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dismiss();
}
});
btnDisagree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
System.exit(0);
}
});
btnAgree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "YOU SELECTED AGREE",
Toast.LENGTH_SHORT).show();
dismiss();
}
});
showDialog();
}
/** 加載webview的內(nèi)容 */
public void showDialog() {
String localHtml = "file:///android_asset/los.html";
if (mWebView != null) {
mWebView.getSettings().setDefaultTextEncodingName("utf-8");
mWebView.loadUrl(localHtml);
}
buttonsDisplayTwo(false);
}
/** 當(dāng)true的時(shí)候,出現(xiàn)同意和不同意兩個(gè)選項(xiàng),反之是關(guān)閉選項(xiàng) */
private void buttonsDisplayTwo(boolean two) {
btnAgree.setVisibility(two ? View.VISIBLE : View.GONE);
btnDisagree.setVisibility(two ? View.VISIBLE : View.GONE);
btnClose.setVisibility(two ? View.GONE : View.VISIBLE);
}

效果圖如下:
     

相關(guān)文章

  • Android Studio真機(jī)無線連接USB設(shè)備調(diào)試運(yùn)行詳解流程

    Android Studio真機(jī)無線連接USB設(shè)備調(diào)試運(yùn)行詳解流程

    你在Android Studio寫app時(shí)是否也有想過如果可以不用數(shù)據(jù)線連接手機(jī)調(diào)試運(yùn)行就好了?如果需要取出數(shù)據(jù)線插接的話我肯定是嫌麻煩的,但是模擬器有時(shí)候需要測試一些需要硬件支持的功能時(shí)又不管用,所以最好的測試還是在真機(jī)上,本篇教你扔掉數(shù)據(jù)線來無線調(diào)試
    2021-11-11
  • Android自定義彈出框dialog效果

    Android自定義彈出框dialog效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義彈出框dialog效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 關(guān)于Android中自定義ClassLoader耗時(shí)問題的追查

    關(guān)于Android中自定義ClassLoader耗時(shí)問題的追查

    熱修復(fù)和插件化是目前比較熱門的技術(shù),要想更好的掌握它們需要了解ClassLoader,下面這篇文章主要給大家介紹了關(guān)于Android中自定義ClassLoader耗時(shí)問題追查的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-06-06
  • Android編程實(shí)現(xiàn)換膚功能實(shí)例

    Android編程實(shí)現(xiàn)換膚功能實(shí)例

    這篇文章主要介紹了Android編程實(shí)現(xiàn)換膚功能的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android換膚的具體步驟與相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • Android LayerDrawable超詳細(xì)講解

    Android LayerDrawable超詳細(xì)講解

    一個(gè)LayerDrawable是一個(gè)可以管理一組drawable對象的drawable。在LayerDrawable的drawable資源按照列表的順序繪制,所以列表的最后一個(gè)drawable繪制在最上層
    2022-11-11
  • Android實(shí)現(xiàn)圖片陰影效果的方法

    Android實(shí)現(xiàn)圖片陰影效果的方法

    這篇文章主要介紹了Android實(shí)現(xiàn)圖片陰影效果的方法,是比較實(shí)用的功能,需要的朋友可以參考下
    2014-07-07
  • Android變形(Transform)之Matrix用法

    Android變形(Transform)之Matrix用法

    Android的2D變形(包括縮放,扭曲,平移,旋轉(zhuǎn)等)可以通過Matrix來實(shí)現(xiàn),本文研究了一下;接下來就將我這倆天研究的東西和大家分享下,先來看看Matrix的用法感興趣的你可不要錯(cuò)過了哈
    2013-02-02
  • 退出Android程序時(shí)清除所有activity的實(shí)現(xiàn)方法

    退出Android程序時(shí)清除所有activity的實(shí)現(xiàn)方法

    這篇文章主要介紹了退出Android程序時(shí)清除所有activity的實(shí)現(xiàn)方法,詳細(xì)分析了Android退出時(shí)清除activity的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-04-04
  • Android EditText默認(rèn)不彈出輸入法的實(shí)現(xiàn)方法

    Android EditText默認(rèn)不彈出輸入法的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇Android EditText默認(rèn)不彈出輸入法的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android編程使用Intent傳遞對象的方法分析

    Android編程使用Intent傳遞對象的方法分析

    這篇文章主要介紹了Android編程使用Intent傳遞對象的方法,結(jié)合實(shí)例形式詳細(xì)分析了Android使用Intent實(shí)現(xiàn)傳遞對象的相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下
    2016-01-01

最新評論

灯塔市| 侯马市| 潜江市| 赫章县| 霍林郭勒市| 兴国县| 五华县| 安义县| 莱州市| 连山| 宜兰市| 秀山| 南郑县| 文昌市| 巨野县| 大庆市| 长治市| 安多县| 阆中市| 柘城县| 沧州市| 大姚县| 蒙城县| 孟村| 连州市| 阿拉善盟| 博客| 清远市| 安康市| 常山县| 南投市| 斗六市| 建平县| 云浮市| 大荔县| 佳木斯市| 自治县| 凯里市| 常德市| 沙雅县| 新巴尔虎左旗|