android學習小結3

來源:互聯網
上載者:User

1 在1。5的android中,可以指定edittext中只輸入數字,比如可以這樣,就彈出小鍵盤了:
android:inputType="numberDecimal",這樣還可以接受輸入包含小數點的數字了。

2 讀取資源檔中的內容
   result.setText(getText(R.String.bmi_result));
注意使用getText函數,讀取資源檔中的內容.

3 做一個象”關於我們“的對話方塊:
    new AlertDialog.Builder(Bmi.this)
            .setTitle(R.string.about_title)
            .setMessage(R.string.about_msg)
            .setPositiveButton("確認",
       new DialogInterface.OnClickListener(){
           public void onClick(
               DialogInterface dialoginterface, int i){
               }
            })
            .show();

4 toast組件:顯示短的提示訊息,過幾秒之後就消失:
    Toast.makeText(Bmi.this, "關於我們", Toast.LENGTH_SHORT).show();
5 url的開啟
   new AlertDialog.Builder(Bmi.this)
    .setNegativeButton(R.string.homepage_label,
            new DialogInterface.OnClickListener(){
            public void onClick(
                DialogInterface dialoginterface, int i){
                //go to url
                Uri uri = Uri.parse("http://sites.google.com/site/gasodroid/");
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);
            }
     })
     .show();
   也可以把URI寫到資源檔中去,
   Uri uri=uri.parase(getString(R.string.homepage_uri));

6 menu菜單
   public boolean onCreateOptionsMenu(Menu menu) {
  // TODO Auto-generated method stub
     menu.add(0, MENU_ABOUT, 0, "關於").setIcon(R.drawable.help_browser);
     menu.add(0, MENU_Quit, 0, "結束").setIcon(R.drawable.emblem_unreadable);
  return super.onCreateOptionsMenu(menu);
 }
    處理menu的點擊動作
public boolean onOptionsItemSelected(MenuItem item) {
  // TODO Auto-generated method stub
  switch(item.getItemId()) {
        case MENU_ABOUT:
             openOptionsDialog();
             break;
        case MENU_Quit:
             finish();
             break;
  }
  return super.onOptionsItemSelected(item);
 }
7   <activity android:name=".Bmi"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>、
  這裡指出了啟動的類是Bmi這個類,,<intent-filter>講明了這個程式的性質,其中
  <action android:name="android.intent.action.MAIN" />講明了這個BMI是程式的切入點,
<category android:name="android.intent.category.LAUNCHER" />講明這個出現在程式的lanucher列表中

8 intent之間傳遞資料
    Intent intent = new Intent();
                intent.setClass(Bmi.this, Report.class);
                Bundle bundle = new Bundle();
                bundle.putString("KEY_HEIGHT", field_height.getText().toString());
                bundle.putString("KEY_WEIGHT", field_weight.getText().toString());
                intent.putExtras(bundle);
                startActivity(intent);
接收資訊:
    Bundle bunde = this.getIntent().getExtras();
        double height = Double.parseDouble(bunde.getString("KEY_HEIGHT"))/100;
9 使用狀態攔資訊
    import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
 
NotificationManager barManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
     
     Notification barMsg = new Notification(
       R.drawable.icon_128,
          "HI",
          System.currentTimeMillis()
          );

     barMsg.defaults |= Notification.DEFAULT_SOUND;
     //barMsg.defaults |= Notification.DEFAULT_ALL;
     
     PendingIntent contentIntent = PendingIntent.getActivity(
          this,
          0,
                new Intent(this, Bmi.class),
                PendingIntent.FLAG_UPDATE_CURRENT);
          
     barMsg.setLatestEventInfo(
       Report.this,
       "HI",
                "OK",
                contentIntent);
     
     barManager.notify(0, barMsg);

NotificationManager barManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
聲明管理器,
Notification barMsg = new Notification(
       R.drawable.icon_128,
          "HI",
          System.currentTimeMillis()
          );
中聲明提醒資訊,System.currentTimeMillis()表示立刻顯示;
barMsg.setLatestEventInfo(
       Report.this,
       "HI",
                "OK",
                contentIntent);
這裡是添加狀態列的詳細資料,這裡的“HI”是顯示的主題,第三個參數,這裡的‘OK’是說明,
contentIntent這個參數指明當點狀態列時,相應開啟的intent.

10 儲存優先順序的設定:
   private void restorePrefs() {
        SharedPreferences settings = getSharedPreferences(PREF, 0);
        String pref_height = settings.getString(PREF_HEIGHT, "");
 
    }
  這裡是找系統中是否以"BMI_PREF"字串作為檔案名稱的優先順序設定的檔案,有的話,以settings做為代號來操作
當使用者離開activity時,把值進行儲存,重寫onPause()函數:
 super.onPause();
  // Save user preferences. use Editor object to make changes.
        SharedPreferences settings = getSharedPreferences(PREF, 0);
            settings.edit()
                .putString(PREF_HEIGHT, field_height.getText().toString())
                .commit();

11 多語言介面並存:
   比如原來的是英文,則res目錄下放values,中文的話,在res目錄下再放一個values-zh-rTW
其中zh是主語系,-r是必須的,後面跟分支
    Resources res = getResources();
        Configuration conf = res.getConfiguration();
        conf.locale = Locale.TRADITIONAL_CHINESE;
        DisplayMetrics dm = res.getDisplayMetrics();
        res.updateConfiguration(conf, dm);
這裡是強制使用中文介面,在程式中,針對不同語言提供不同的介面:
  if (conf.locale==Local.TRADITIONAL_CHINESE)
12 Spinner下拉式功能表中的選擇事件:

    field_feet.setOnItemSelectedListener(getFeet);
  private Spinner.OnItemSelectedListener getFeet = new Spinner.OnItemSelectedListener() {
        public void onItemSelected(AdapterView parent, View v, int position, long id) {
               。。。。。。
        }
        public void onNothingSelected(AdapterView parent) {
        }
    };

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.