兩個簡單的小案列
<1>電話撥號器
實現一個電話撥號器,我們分爲簡單的三步走:
1.在layout中寫好佈局
2.在MainActivity中寫出對應的事件
3.在Manifest中配置好權限
第一步:
我們的電話撥號器很簡單,一個TextView,一個EditText,一個Button就搞定了,用線性佈局就可以了。代碼實現:
<LinearLayout 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:orientation="vertical"
android:padding="10dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="號碼" />
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/bt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="撥號"/>
</LinearLayout>
第二步:
當我們寫好佈局之後,就需要寫對應的java代碼了。
我們需要點擊Button之後,實現打電話的功能。所以我們要做的又兩件事:1.給Button添加點擊事件;2.要獲取用戶輸入的號碼。代碼實現:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//得到按鈕
Button bt=(Button) findViewById(R.id.bt);
//採用匿名內部類的方式給按鈕添加點擊事件
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//得到Edit控件
EditText et=(EditText)findViewById(R.id.edit);
//得到號碼
String num =et.getText().toString().trim();
if(TextUtils.isEmpty(num)){
//如果號碼爲空
Toast.makeText(MainActivity.this, "號碼不能爲空", 0).show();
}else{
Intent intent =new Intent();
//設置打電話的動作
intent.setAction(Intent.ACTION_CALL);
//將電話號碼添加在intent中
intent.setData(Uri.parse("tel"+num));
//開啓活動
startActivity(intent);
}
}
});
}
}
第三步
前面的都完成後,當你點擊Run As的時候,你會發現程序還是跑不起來。原因是:你沒有設置打電話的權限。接下來我們就需要在Manifest.xml中設置權限,一句話解決。
<uses-permission android:name="android.permission.CALL_PHONE" />
恭喜你,你已經實現了一個電話撥號器的功能。
<2>短信發送器
實現一個短信發送器的步驟與上面完全相同,佈局裏面就是2個TextView,2個EditText,一個Button.完成佈局後緊接着要完成java代碼,最後添加發送短信的權限。第一步和第三步就直接上代碼了:
<LinearLayout 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:padding="10dp"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TelephoneNumber" />
<EditText
android:id="@+id/edit_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Fill Number"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Content" />
<EditText
android:id="@+id/edit_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="10"
android:hint="Please write here"
android:gravity="top"
/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send"
/>
</LinearLayout>
添加發短信的權限
<uses-permission android:name="android.permission.SEND_SMS"/>
下面主要說一下發送短信的功能:
- 獲取號碼和短信的內容
- 爲按鈕添加點擊事件
- 獲取短信管理對象
- 拆分短信
- 多條一起發送
代碼如下:
public class MainActivity extends Activity {
private EditText ed_num;
private EditText ed_msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed_num=(EditText) findViewById(R.id.edit_1);
ed_msg=(EditText) findViewById(R.id.edit_2);
Button bt =(Button)findViewById(R.id.button);
//爲按鈕添加點擊事件
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//獲取號碼
String num=ed_num.getText().toString().trim();
//獲取短信內容
String msg=ed_msg.getText().toString();
if(TextUtils.isEmpty(num) || TextUtils.isEmpty(msg)){
Toast.makeText(MainActivity.this, "號碼或短信爲空", 0).show();
}else{
//獲取短信管理對象
SmsManager manager = SmsManager.getDefault();
//拆分短信
ArrayList<String> list = manager.divideMessage(msg);
//直接發送多條短信
manager.sendMultipartTextMessage(num, null, list, null, null);
}
}
});
}
}
當你看到這裏,恭喜你!你已經會電話撥號器和短信發送器兩個功能了。哈哈