Android 的一些提示框


1.在測試時,如何實現一個提示

可以使用

  1. Toast.makeText(this, "這是一個提示", Toast.LENGTH_SHORT).show();
  2. //從資源文件string.xml 里面取提示信息
  3. Toast.makeText(this, getString(R.string.welcome), Toast.LENGTH_SHORT).show();

這個提示會幾秒鍾后消失

 

2.可以使用AlertDialog.Builder 才產生一個提示框.

   例如像messagebox那樣的

  1.    new AlertDialog.Builder(this)
  2.      .setTitle("Android 提示")
  3.      .setMessage("這是一個提示,請確定")
  4.      .show();

帶一個確定的對話框

  1. new AlertDialog.Builder(this)
  2.           .setMessage("這是第二個提示")
  3.           .setPositiveButton("確定",
  4.                          new DialogInterface.OnClickListener(){
  5.                                  public void onClick(DialogInterface dialoginterface, int i){
  6.                                      //按鈕事件
  7.                                   }
  8.                           })
  9.           .show();

 

AlertDialog.Builder 還有很多復雜的用法,有確定和取消的對話框

  1. new AlertDialog.Builder(this)
  2.          .setTitle("提示")
  3.          .setMessage("確定退出?")
  4.          .setIcon(R.drawable.quit)
  5.          .setPositiveButton("確定", new DialogInterface.OnClickListener() {
  6.         public void onClick(DialogInterface dialog, int whichButton) {
  7.          setResult(RESULT_OK);//確定按鈕事件
  8.          finish();
  9.          }
  10.          })
  11.          .setNegativeButton("取消", new DialogInterface.OnClickListener() {
  12.         public void onClick(DialogInterface dialog, int whichButton) {
  13.          //取消按鈕事件
  14.          }
  15.          })
  16.          .show();

3.menu 的用法.

  1. public static final int ITEM_1_ID = Menu.FIRST;
  2. public static final int ITEM_2_ID = Menu.FIRST + 1;
  3. public static final int ITEM_3_ID = Menu.FIRST + 2;
  4.     
  5. public boolean onCreateOptionsMenu(Menu menu) {
  6.          super.onCreateOptionsMenu(menu);
  7. //不帶圖標的menu
  8.          menu.add(0, ITEM_1_ID, 0, "item-1");       
  9. //帶圖標的menu
  10.          menu.add(0, ITEM_2_ID, 1, "item-2").setIcon(R.drawable.editbills2);
  11.          menu.add(0, ITEM_3_ID, 2, "item-3").setIcon(R.drawable.billsum1);
  12.         return true;
  13. }
  14. public boolean onOptionsItemSelected(MenuItem item){
  15.        switch (item.getItemId()) {
  16.        case 1:
  17.             Toast.makeText(this, "menu1",Toast.LENGTH_SHORT).show();            
  18.            return true;
  19.        case 2:
  20.         
  21.            return true;
  22.        case 3:
  23.          
  24.            return true;
  25.         }
  26.        return false;
  27.      }

4.Activity 的切換

     2個Activity 的切換,沒有數據傳遞

  1. //從A到B
  2. Intent intent = new Intent();
  3.                  intent.setClass(A.this, B.class);
  4.                  startActivity(intent);

2個Activity 之間傳遞數據

    相關的幾個函數
     startActivityForResult
    public final void setResult(int resultCode, String data)
    回調函數

    protected void onActivityResult(int requestCode, int resultCode, Intent data)

 

    例如A到B,從B得到數據  

  1. //A到B
  2. static final int RG_REQUEST = 0;
  3. Intent intent = new Intent();
  4. intent.setClass(A.this, B.class);
  5. startActivityForResult(intent,RG_REQUEST);
  6.                                   
  7. //在B中處理
  8. Bundle bundle = new Bundle();
    bundle.putString("DataKey", edittext.getText().toString());//給bundle 寫入數據
    Intent mIntent = new Intent();
    mIntent.putExtras(bundle);
    setResult(RESULT_OK, mIntent);
    finish();
  9. //最后在A的回調函數里面接收數據
  10. if (requestCode == RG_REQUEST) {
         if (resultCode == RESULT_CANCELED)
               setTitle("Canceled...");
         else if(resultCode == RESULT_OK) {
              setTitle((String)data.getCharSequenceExtra("DataKey"));
            }
    }

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/sunnyclare/archive/2010/03/23/5408217.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM