2011年6月10日 星期五

[Android UI 教學(6)] 總和計算應用程式

1. 建立新專案

2. 刪除預設的TextView

3. 新增2個EditText, 1個Button, 1個TextView

4. 修改Text屬性

5. 輸入程式

package com.example.sum;

import android.app.Activity;
import android.os.Bundle;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SumActivity extends Activity {
/** Called when the activity is first created. */

EditText et1, et2;
Button bt;
TextView tv;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

et1 = (EditText) findViewById(R.id.EditText01);
et2 = (EditText) findViewById(R.id.EditText02);
tv = (TextView) findViewById(R.id.TextView01);
bt = (Button) findViewById(R.id.Button01);
bt.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
double d1,d2;
d1 = Double.parseDouble(et1.getText().toString());
d2 = Double.parseDouble(et2.getText().toString());
tv.setText(Double.toString(d1+d2));
}

});

}
}

6. 執行結果

[Android UI 教學(5)] 設計中英文兩用的選單

在設計具備國際化的應用程式,必須能提供多種語言的選單,本範例介紹如何在中文選單下增設英文選單
1. 中文選單

2. 執行Settings改變語系





3. 重新執行的結果變成英文選單

[Android UI 教學(4)] 建立字串資源

在設計應用程式時,我們會把程式用到的字串集中在一個檔案中,以方便進行維護,在Android中該檔案是res/value/string.xml。
1. 選擇專案中的res/value/string.xml,按下Add鈕選擇string。

2. 輸入Name和Value,Name是給程式用的,Value是用來顯示用的。

3. 修改程式

4.執行結果

2011年6月7日 星期二

[Android UI 教學(3)] 建立簡單的對話盒


原程式請參考[Android UI 教學(2)] 建立有圖示功能表請修訂下列文字

package com.example.menu;

import android.app.Activity;

import android.app.AlertDialog;
import android.content.DialogInterface;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MenuDesignActivity extends Activity {
/** Called when the activity is first created. */
public static final int ADD_ID = Menu.FIRST ;
public static final int DELETE_ID = Menu.FIRST + 1;
public static final int ABOUT_ID = Menu.FIRST + 2;
public static final int EXIT_ID = Menu.FIRST + 3;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub

menu.add(0, ADD_ID, 0, "Add").setIcon(R.drawable.icon);
menu.add(0, DELETE_ID, 1, "Del");
menu.add(0, ABOUT_ID, 2, "About");
menu.add(0, EXIT_ID, 3, "Exit");

return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case ADD_ID:
setTitle("新增項目");
break;
case DELETE_ID:
setTitle("刪除項目");
break;
case ABOUT_ID:
setTitle("關於");

openAboutDialog();

break;
case EXIT_ID:
finish();
break;
}

return super.onOptionsItemSelected(item);
}


public void openAboutDialog()
{
new AlertDialog.Builder(this)
.setTitle("關於")
.setMessage("南開科大")
//按下確認按鈕後的事件
.setPositiveButton("ok",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface, int i)
{
}
}
)
.show();
}

}

[Android UI 教學(2)] 建立有圖示功能表

1. 輸入setIcon()指令。

2. 圖示存在res\drawable底下

3. 執行結果

[Android UI 教學(1)] 文字型功能表設計

請先參考[Android UI 教學(1)] 文字型功能表設計1. 建立專案

2. 在下圖中第一個紅色框位置上按下滑鼠右鍵,選擇「Source」選單,再選「Override/Implement Method」。

3. 把onCreateOptionsMenu()和onOptionsItemSelected()兩個事件程序打勾,按下OK鍵後,會產生相對應的事件處理程序的框架。



4. 指令說明
public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title)
功能:增加功能選單
groupId: 群組代碼
itemId:選項代碼
order:選單次序
title:選單標題

5. 輸入下列程式(藍色)

package com.example.menu;

import android.app.Activity;
import android.os.Bundle;

import android.view.Menu;
import android.view.MenuItem;


public class MenuDesignActivity extends Activity {
/** Called when the activity is first created. */

public static final int ADD_ID = Menu.FIRST ;
public static final int DELETE_ID = Menu.FIRST + 1;
public static final int ABOUT_ID = Menu.FIRST + 2;
public static final int EXIT_ID = Menu.FIRST + 3;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub

menu.add(0, ADD_ID, 0, "Add");
menu.add(0, DELETE_ID, 1, "Del");
menu.add(0, ABOUT_ID, 2, "About");
menu.add(0, EXIT_ID, 3, "Exit");

return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub

switch(item.getItemId()){
case ADD_ID:
setTitle("新增項目");
break;
case DELETE_ID:
setTitle("刪除項目");
break;
case ABOUT_ID:
setTitle("關於");
break;
case EXIT_ID:
finish();
break;
}

return super.onOptionsItemSelected(item);
}


}

2011年6月1日 星期三

Java Native Interface (JNI) Android算數篇(使用NDK) -- Fibonacci Sequence

籠子裡有一對新生的兔子。假設每對兔子每個月會生出一對兔子,但新生的兔子要滿兩個月才能生出下一代兔子,則一年之後,會有多少對兔子?


費波那西數列(Fibonacci Sequence),又譯費波拿契數、斐波那契數列、費氏數列、黃金分割數列。
費波那西數列由 0 和 1 開始,之後的費波那西係數就由之前的兩數相加。
前幾個費波那西係數是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,………………

大家放心,今天不是來討論數學況且數學不太認識我,這次是將Fibonacci用JNI方式實作在Android上。