編輯:Android開發實例
目前Android已經在只能手機市場已經具有強大的霸主地位,也吸引了越來越多的追捧者。Android的學習也越來越火。但是,報名費用確實大多人望而卻步
一、新建項目CallPhone
1.1、建立項目

二、設置界面與項目名稱
2.1、更改項目名稱
res/values下strings.xml中更改app_name電話拔號器
string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">電話拔號器</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="dail">拔打電話</string> <string name="defaul_prop">請輸入電話號碼</string> </resources>
2.2、設置文件框與按鍵
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/et_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:hint="@string/defaul_prop">
<requestFocus />
</EditText>
<Button
android:id="@+id/btn_dail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/et_number"
android:text="@string/dail" />
</RelativeLayout>
三、寫java代碼
3.1、MainActivity.java
package com.pb.dial;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//根據ID找到ID,拔號按鍵的ID
Button bt_dail= (Button) findViewById(R.id.btn_dail);
//為按鍵設置點擊事件
bt_dail.setOnClickListener(new MyOnClickListener());
}
//單擊監聽事件
private class MyOnClickListener implements OnClickListener{
/**
* 單擊按鍵被點擊時調用的方法
*/
@Override
public void onClick(View v) {
//取出輸入框中的內容
//先找到ID
EditText et_number=(EditText) MainActivity.this.findViewById(R.id.et_number);
//根據ID出內容
String phoneNumber=et_number.getText().toString();
//意圖,想做什麼事
Intent intent=new Intent();
//開始拔打電話
intent.setAction(Intent.ACTION_CALL);
//設置動作內容 uri:統一資源標識符,url的類型 統一資源定位符
intent.setData(Uri.parse("tel:"+phoneNumber));
//開啟新的界面
startActivity(intent);
}
}
}
或者
package com.pb.dial;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity implements OnClickListener{
private Button bt_dail;
private EditText et_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//根據ID找到ID,拔號按鍵的ID
bt_dail= (Button) findViewById(R.id.btn_dail);
//取出輸入框中的內容
//先找到ID
//根據ID出內容
et_number=(EditText) MainActivity.this.findViewById(R.id.et_number);
//為按鍵設置點擊事件
bt_dail.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String phoneNumber=et_number.getText().toString().trim();
//判斷內容是否為空 TextUtils是個工具類
if(TextUtils.isEmpty(phoneNumber)){
Toast.makeText(this, "電話號碼不能為空", Toast.LENGTH_LONG).show();
//如果是內容類請將this改為MainActivity.this
return;
}
//意圖,想做什麼事
Intent intent=new Intent();
//開始拔打電話
intent.setAction(Intent.ACTION_CALL);
//設置動作內容 uri:統一資源標識符,url的類型 統一資源定位符
intent.setData(Uri.parse("tel:"+phoneNumber));
//開啟新的界面
startActivity(intent);
}
//單擊監聽事件
/* private class MyOnClickListener implements OnClickListener{
*//**
* 單擊按鍵被點擊時調用的方法
*//*
@Override
public void onClick(View v) {
//取出輸入框中的內容
//先找到ID
EditText et_number=(EditText) MainActivity.this.findViewById(R.id.et_number);
//根據ID出內容
String phoneNumber=et_number.getText().toString();
//意圖,想做什麼事
Intent intent=new Intent();
//開始拔打電話
intent.setAction(Intent.ACTION_CALL);
//設置動作內容 uri:統一資源標識符,url的類型 統一資源定位符
intent.setData(Uri.parse("tel:"+phoneNumber));
//開啟新的界面
startActivity(intent);
}
}*/
}
3.2、添加權限
<!--添加權限 --> <uses-permission android:name="android.permission.CALL_PHONE"/>
3.3、運行

下面給大家分享一段代碼 ————android電話拔號器和短信發送器
android電話拔號器
因為應用要使用手機的電話服務,所以要在清單文件AndroidManifest.xml中添加電話服務權限:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.action" android:versionCode="1" android:versionName="1.0"> 略.... <uses-sdk android:minSdkVersion=“6" /> <uses-permission android:name="android.permission.CALL_PHONE"/> </manifest>
界面布局:
<?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/inputmobile"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/mobile"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button"/> </LinearLayout>
LinearLayout (線性布局)、AbsoluteLayout(絕對布局)、RelativeLayout(相對布局)、TableLayout(表格布局)、FrameLayout(幀布局)
Activity:
public class DialerAction extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
EditText editText = (EditText)findViewById(R.id.mobile);
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ editText.getText()));
DialerAction.this.startActivity(intent);
}
});
}
}
短信發送器
因為應用要使用手機的短信服務,所以要在清單文件AndroidManifest.xml中添加短信服務權限:
<uses-permission android:name="android.permission.SEND_SMS"/>
界面布局:
<?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/inputmobile"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/mobile"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/content"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="3" android:id="@+id/content"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button"/> </LinearLayout>
Activity主要代碼:
String mobile = mobileView.getText().toString();
String content = contentView.getText().toString();
SmsManager smsManager = SmsManager.getDefault();
PendingIntent sentIntent = PendingIntent.getBroadcast(SMSSender.this, 0, new Intent(), 0);
if(content.length()>70){//如果字數超過70,需拆分成多條短信發送
List<String> msgs = smsManager.divideMessage(content);
for(String msg : msgs){
smsManager.sendTextMessage(mobile, null, msg, sentIntent, null);
//最後二個參數為短信已發送的廣播意圖,最後一個參數為短信對方已收到短信的廣播意圖
}
}else{
smsManager.sendTextMessage(mobile, null, content, sentIntent, null);
}
Toast.makeText(SMSSender.this, "短信發送完成", Toast.LENGTH_LONG).show();
Android JSON解析器
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
Android加載Spinner
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
Android MediaPlayer(多媒體播放)
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
Android中的廣播、服務、數據庫、通知、包等術語的原理和介紹(圖解)
簡介 在Android中運用了很多機制,例如:廣播、服務、數據庫、通知、包……等等。 什麼是廣播?Broadcast是一種廣泛運用的在應用