1. 程式人生 > >一. 關於Android的一些小tips...

一. 關於Android的一些小tips...

拼臉蛋的UI-提示對話方塊

1.AlertDialog

      AiertDialog可以在當前的介面彈出一個對話方塊,這個對話方塊是置頂於所有介面元素之上的能夠遮蔽掉其他控制元件的互動能力,因此AlertDialog一般都是用於提示一些非常重要的內容或者警告資訊。比如為了防止使用者誤刪重要內容,在刪除前彈出一個確認對話方塊。修改MainActivity中程式碼,如下所示:

  public void onClick(View v){
              switch (v.getId()){
                  case R.id.button:
                //在此處新增邏輯
                      AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
                      dialog.setTitle("This is Dialog");
                      dialog.setMessage("Something important.");
                      dialog.setCancelable(false);
                      dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                          @Override
                          public void onClick(DialogInterface dialog, int which) {
                          }
                      });
                      dialog.show();

                      break;
                      default:
                          break;
            }
        }

    執行結果如下圖所示:                   

    

2.ProgressDialog

    ProgressDialog與AlertDialog有點類似,都可以在介面上彈出一個對話方塊,都能夠遮蔽掉其他控制元件的互動能力。不同的是,ProgressDialog會在對話方塊中顯示一個進度條,一般用於表示當前操作比較耗時,讓使用者耐心等待。它的用法和AlertDialog也比較相似,修改MainActivity程式碼,如下所示:

            @Override
            public void onClick(View v){
              switch (v.getId()){
                  case R.id.button:
                //在此處新增邏輯
                      ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);
                      progressDialog.setTitle("This is ProgressDialog");
                      progressDialog.setMessage("Loading...");
                      progressDialog.setCancelable(true);
                      progressDialog.show();
                      break;
                      default:
                          break;
            }
        }

執行效果如圖所示:


3.劃重點

全部都配置好了,懷著激動心情運行了下,發現執行錯誤,提示這個: 

通過同事,瞭解到我是沒有啟動APP的標識:需要在Mainfest.xml檔案中Main activity裡新增如下程式碼作為啟動介面。就這樣解決啦~

<intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

4.詳解4種基本佈局

可在UILayoutTest中檢視。

注意:LinearLayout佈局中,當其排列方向是horizontal,內部的控制元件就絕對不能將寬度指定為match_parent,因為這樣的話,單獨一個控制元件就會將整個水平方向佔滿,其他的控制元件就沒有可放置的位置了。同樣的道理,如果LinearLayout的排列方向是vertical,內部的控制元件就不能將高度指定為match_parent。