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) {
}
};