两个简单的小案列
<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);
}
}
});
}
}
当你看到这里,恭喜你!你已经会电话拨号器和短信发送器两个功能了。哈哈