2010年2月25日 星期四

Android學習筆記 - 長按選單(ContextMenu)

1. 在螢幕按下2至3秒之後出現選單,這是使用ContextMenu物件來達到此效果

2. 需覆寫onCreateContextMenu及onContextItemSelected這二個方法

3. MainActivity.java
import android.app.Activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        LinearLayout windowLayout = (LinearLayout) findViewById(R.id.windowLayout);
        //註冊長按選單
        this.registerForContextMenu(windowLayout);
    }


    @Override
    public boolean onContextItemSelected(MenuItem item) {
        //當使用者點選項目時,所需的動作
        Toast.makeText(this, "您選擇的是"+item.getTitle(), Toast.LENGTH_SHORT).show();
        return super.onContextItemSelected(item);
    }


    @Override
    public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenuInfo menuInfo) {
        //設定選單內容
        super.onCreateContextMenu(contextMenu, view, menuInfo);
        contextMenu.add(0, 0, 0, "紅茶");
        contextMenu.add(0, 1, 0, "奶茶");
        contextMenu.add(0, 2, 0, "綠茶");
        contextMenu.add(0, 3, 0, "青茶");
    }
}


3. main.xml(Layout)
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/windowLayout">
</LinearLayout>


4. 執行之後的畫面。



2010年2月24日 星期三

Android學習筆記 - 網格視圖(GridView)

1. 利用網格視圖(GridView)物件來呈現項目列表

2. MainActivity.java
package org.me.android_gridview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.Toast;

public class MainActivity extends Activity {
    private GridView gridView;
    
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        gridView = (GridView) findViewById(R.id.gridView);
        final String[] list = new String[]{"王建民","郭泓志","倪福德","胡金龍"};
        //設定列表內容
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,list);
        //設定列數
        gridView.setNumColumns(2);
        gridView.setAdapter(adapter);
        //項目被點選時,回應的動作
        gridView.setOnItemClickListener(new GridView.OnItemClickListener(){
           @Override
           public void onItemClick(AdapterView adapterView,View view,int position,long id) {
               Toast.makeText(MainActivity.this, "您選擇的是"+list[position], Toast.LENGTH_SHORT).show();
           }
        });
    }
}


3. main.xml(Layout)
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">" 
    <GridView
        android:id="@+id/gridView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    </GridView>
</LinearLayout>


4. 執行之後的畫面。


2010年2月23日 星期二

Android學習筆記 - 自動填入文字(AutoCompleteTextView)

1. 利用(AutoCompleteTextView)物件來達到自動填入文字

2. MainActivity.java
package org.me.android_autocompletetextview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends Activity {
    private AutoCompleteTextView autoComplete;
    
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        autoComplete = (AutoCompleteTextView) findViewById(R.id.autoComplete);
        String[] phone = new String[]{"0986254878","0985225787","098525879","0985012486","0985658745"};
        //設定自動填入的文字內容
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,phone);
        autoComplete.setAdapter(adapter);
    }
}


3. main.xml(Layout)
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">" 
    <AutoCompleteTextView
        android:id="@+id/autoComplete"
        android:layout_width="fill_parent"
        android:layout_height="50px">
    </AutoCompleteTextView>
</LinearLayout>


4. 在「自動填入文字框」輸入文字之後出現的畫面。


Android學習筆記 - 下拉式選單(Spinner)

1. 透過Spinner物件建立下拉式選單

2. MainActivity.java
package org.me.android_spinner;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        Spinner spinner = (Spinner) findViewById(R.id.spinnner);
        //建立一個ArrayAdapter物件,並放置下拉選單的內容
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,new String[]{"紅茶","奶茶","綠茶"});
        //設定下拉選單的樣式
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        //設定項目被選取之後的動作
        spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
            public void onItemSelected(AdapterView adapterView, View view, int position, long id){
                Toast.makeText(MainActivity.this, "您選擇"+adapterView.getSelectedItem().toString(), Toast.LENGTH_LONG).show();
            }
            public void onNothingSelected(AdapterView arg0) {
                Toast.makeText(MainActivity.this, "您沒有選擇任何項目", Toast.LENGTH_LONG).show();
            }
        });
    }
}


3. main.xml(Layout)
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </TextView>
    <Spinner
        android:id="@+id/spinnner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </Spinner>
</LinearLayout>


4. 下拉式選單畫面


2010年2月22日 星期一

HTC Hero 將升級為Android 2.1版

HTC於Plurk公告將於2010年4月底前透過無線更新的方式,

將HTC Hero 升級為Android 2.1版本,並同時升級

新版HTC SENSE Experience之支援服務。

有使用的人可以先備份手機準備更新囉… 

From HTC Hero Plurk


2010年2月21日 星期日

Present Perfect Continuous(現在完成進行式)

Present Perfect Continuous簡單來說就是發生在過去到現在持續的事件

以下是Present Perfect Continuous發生的時機
1. 從過去開始並持續到現在
   e.g. I have been watching TV for two hours.

2. 最近
   e.g. I have been watching TV lately.


2010年2月9日 星期二

Past Continuous(過去進行式)

Past Continuous簡單來說就是發生在過去的Long Action,而Simple Past就是發生在過去的Short Action

以下是Past Continuous發生的時機:
1. 在過去被中斷的動作
   e.g. While I was reading , he called.
        I was reading when he called.

2. 特定一個時間點發生
   e.g. I was reading last night at 7.
        At midnight, I was reading.

3. 過去並行的動作
   e.g. I was reading while he was watching TV.

4. 過去常常重覆的動作
   e.g. I was always working late.