Android開發筆記

深藍旭發表於2020-09-25

1.使用AlertDialog.Builder 對話方塊自定義view,並通過setview設定

 AlertDialog.Builder dlgAlert;
            dlgAlert = new AlertDialog.Builder(this);
            LayoutInflater inflater = getLayoutInflater();

            dlgAlert.setTitle("使用者協議");
            //dlgAlert.setMessage(R.string.agreement);
            View checkView=inflater.inflate(R.layout.agreedialogview,null);
            dlgAlert.setView(checkView);
            CheckBox agreeCheck=(CheckBox)checkView.findViewById(R.id.checkBox_agree);;
            dlgAlert.setPositiveButton("確定",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {
                            // if this button is clicked, close current activity
                            if (agreeCheck.isChecked()) {
                                init();
                            }
                            else
                            {
                                finish();
                                System.exit(0);
                            }
                        }
                    }).create();

            dlgAlert.setNeutralButton("退出",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {
                            // if this button is clicked, close current activity
                            finish();
                            System.exit(0);
                        }
                    }).create();
            dlgAlert.show();

這裡要想在對話方塊按鈕的監聽事件中呼叫xml佈局裡面的控制元件,不能直接findViewById,需要這樣寫

View checkView=inflater.inflate(R.layout.agreedialogview,null);
            dlgAlert.setView(checkView);
            CheckBox agreeCheck=(CheckBox)checkView.findViewById(R.id.checkBox_agree);;

對話方塊.show()函式之後才可以呼叫,

 

2.wab頁面打不開和無法下載問題

提示:

位於..... 的網頁無法載入,因為:net::ERR_CLEARTEXT_NOT_PERMITTED

 

原因是從Android 6.0開始引入了對Https的推薦支援,與以往不同,Android P的系統上面預設所有Http的請求都被阻止了。

解決方法如下:

在清單檔案里加入android:usesCleartextTraffic="true"這句

<?xml version="1.0" encoding="utf-8"?>
<manifest ...> 
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        ...
        <!-- 加入下面這句 -->
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

 

 

 

 

未完待續

相關文章