本人工作有一個月多了。對於android很多東西,都有了新的瞭解或者說真正的掌握。為了讓更多的像我這樣的小白少走彎路,所以我會堅持將我在工作中遇
到的一些比較令我印象深刻的知識點整合出來給大家(順序是按照我工作到現在的時間來製作的,其實也是想給自己一個記錄吧。記錄自己一路走來以及以後的路,
至少我想找到曾經的記錄都有了)。
第一個需求:簡單的自訂dialog
需求:建立一個dialog,該dialog具備以下功能:
1.有一個視窗可以顯示文章
2.根據需求顯示
1)點擊同意(不同意),觸發對應的事件(同意的事件會彈出一個Toast,不同意則會關閉程式)
2)點擊關閉,關閉dialog
1.在main.xml檔案中設定一個按鈕,點擊會彈出dialog
View Code
<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.建立dialog的內容布局,布局中設定了使用相對布局設定了三個按鈕,其中兩個一起出現(同意和不同意),另外一個單獨出現(關閉)預設是兩個出現
View Code
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); // 阻止返回鍵的響應 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的內容 */ public void showDialog() { String localHtml = "file:///android_asset/los.html"; if (mWebView != null) { mWebView.getSettings().setDefaultTextEncodingName("utf-8"); mWebView.loadUrl(localHtml); } buttonsDisplayTwo(false); } /** 當true的時候,出現同意和不同意兩個選項,反之是關閉選項 */ 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代碼
View Code
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); // 阻止返回鍵的響應 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的內容 */ public void showDialog() { String localHtml = "file:///android_asset/los.html"; if (mWebView != null) { mWebView.getSettings().setDefaultTextEncodingName("utf-8"); mWebView.loadUrl(localHtml); } buttonsDisplayTwo(false); } /** 當true的時候,出現同意和不同意兩個選項,反之是關閉選項 */ 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); }
如下:
MyDialog.rar