2011年8月26日星期五

一個容易讀取手機聯繫人的方法, Activity.managedQuery()

本例子通過調用 Activity.managedQuery() 方法讀取手機聯繫人.

一個容易讀取手機聯繫人的方法, Activity.managedQuery()

package com.AndroidContacts;


import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.widget.SimpleCursorAdapter;

public class AndroidContactsActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

String[] projection = {People._ID, People.NAME};
Cursor cursor = managedQuery(
People.CONTENT_URI, //Uri
projection, //projection
null, //selection
null, //selection arguments
People.NAME); //Sort by

String[] name = new String[] {People.NAME};
int[] text1 = new int[] {android.R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
cursor,
name,
text1);

setListAdapter(adapter);
}
}


最後, 需要修改 AndroidManifest.xml 文件, 添加 "android.permission.READ_CONTACTS" 權限


2011年8月24日星期三

Android SDK 的谷歌電視附加功能預覽


隨著即將到來的 Android 操作系統升級到蜂窩,谷歌電視將兼容 Android。這意味著開發人員可以優化現有的移動手機或平板電腦,創建對應谷歌電視的 Android App,並通過 Android市場分發這些應用程序。

詳情:
- Preview of Google TV Add-on for the Android SDK

2011年8月18日星期四

實施廣播接收器(BroadcastReceiver)檢測USB大容量存儲模式(USB Mass Storage mode)

檢測USB大容量存儲(USB Mass Storage)的連接(Connected)和斷開(Disconnected)模式之間的轉換, 我們可以擴展廣播接收器(BroadcastReceiver), 處理 Intent.ACTION_UMS_CONNECTED 和 Intent.ACTION_UMS_DISCONNECTED 事件. 此事件會在通過 USB 連接和斷開時發生.

實施廣播接收器(BroadcastReceiver)檢測USB大容量存儲模式(USB Mass Storage mode)

實例:
package com.AndroidUSB;


import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;

public class AndroidUSBActivity extends Activity {

TextView umsState;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
umsState = (TextView)findViewById(R.id.ums_state);

registerReceiver(receiverUmsConnected, new IntentFilter(Intent.ACTION_UMS_CONNECTED));
registerReceiver(receiverUmsDisConnected, new IntentFilter(Intent.ACTION_UMS_DISCONNECTED));

}

BroadcastReceiver receiverUmsConnected
= new BroadcastReceiver(){

@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
umsState.setText("USB Mass Storage Connected");
}};

BroadcastReceiver receiverUmsDisConnected
= new BroadcastReceiver(){

@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
umsState.setText("USB Mass Storage Disconnected");

}};
}





2011年8月14日星期日

更改應用程序的標題(Title)

更改應用程序的標題, 我們可以使用Java代碼調用 setTitle() 函數.

例如:

	setTitle("Test");



更改應用程序的標題(Title)

2011年8月4日星期四

通過意圖(Intent)啟動其他應用程序共享文本

有時我們希望與別人分享一些東西, 我們可以通過 Intent.ACTION_SEND 意圖(Intent), 設置類型"text/plain", 啟動其他共享應用程序, 例如 email, SMS...

實例:

通過意圖(Intent)啟動其他應用程序共享文本

package com.AndroidShareText;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class AndroidShareTextActivity extends Activity {

EditText TextInput;
Button buttonShare;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

TextInput = (EditText)findViewById(R.id.input);
buttonShare = (Button)findViewById(R.id.share);

buttonShare.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub

String textToBeSent = TextInput.getText().toString();

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, textToBeSent);
startActivity(Intent.createChooser(intent, "Share..."));
}});

}
}


<?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:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<EditText
android:id="@+id/input"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/share"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Share"
/>
</LinearLayout>

2011年8月3日星期三

通過Java 碼在編輯文本(EditText)旁邊放置圖標, setCompoundDrawablesWithIntrinsicBounds

通過 setCompoundDrawablesWithIntrinsicBounds() 方法可在編輯文本(EditText)旁邊放置圖標.

實例:
通過 Java 碼在編輯文本(EditText)旁邊放置圖標

package com.AndroidEditText;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class AndroidEditTextActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final EditText input = (EditText)findViewById(R.id.input);
Button buttonClear = (Button)findViewById(R.id.clear);
buttonClear.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
input.setText("");
}});

Drawable icon = getResources().getDrawable(R.drawable.icon);

input.setCompoundDrawablesWithIntrinsicBounds(
icon, //left
icon, //top
icon, //right
icon); //bottom

}
}



相關文章:
- 通過XML在編輯文本(EditText)旁邊放置圖標

通過XML在編輯文本(EditText)旁邊放置圖標

在佈局文件(mian.xml)中, 使用android:drawableLeft, drawableTop, drawableRight 和 drawableLeft 可在編輯文本(EditText)旁邊放置圖標.

實例:

通過XML在編輯文本(EditText)旁邊放置圖標

<EditText  
android:id="@+id/input"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="請輸入"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/clear"
android:drawableRight="@drawable/icon"/>



相關文章:
- 通過Java 碼在編輯文本(EditText)旁邊放置圖標, setCompoundDrawablesWithIntrinsicBounds