第5天
今天整理下1.0版本的拨号器案例,一个 TextView,一个EditText,还有一个Button,控件就是那么简单。
1.activity_main.xml代码
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="请输入手机号码" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="20dp"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="16dp"
android:text="拨打" />
2.MainActivity.java代码
package com.example.myphone;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* 加载一个布局*/
setContentView(R.layout.activity_main);
/* 一个号码输入框*/
et_number = (EditText)findViewById(R.id.editText1);
/* 找到按钮*/
Button btn_call = (Button)findViewById(R.id.button1);
/* 设置一个点击事件*/
btn_call.setOnClickListener(new MyClickListener());
}
private class MyClickListener implements OnClickListener{
@SuppressLint("ShowToast") @Override
public void onClick(View v) {
String number = et_number.getText().toString().trim();
if("".equals(number)){
Toast.makeText(MainActivity.this, "号码不能为空", 1).show();
return;
}
/* 拨打电话意向*/
Intent intent = new Intent();
/* 设置动作*/
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
/*开启意图*/
startActivity(intent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
3.获得拨打电话的权限,如果不进行此操作的话,会报出权限不足的错误。
在AndroidManifest.xml中的 permissions 窗口下 点击add ,然后选择 User permission,再选择 CALL_PHONE,然后点击确定。
获得权限后,运行程序。OK,over!!!
例子思路: 在 EditText 中输入你想要拨打的号码,给 button 设置一个单击事件,拨打电话。