安卓拨号程序

这里介绍下,我们一般写一些小程序步骤:

  • 画UI
  • 根据UI写业务逻辑
  • 测试

大型程序的话开始就不能够画UI了,而是要需求分析。

写一个拨号器安卓应用程序:

首先创建项目,然后一路Next。

修改界面显示的字符串为:”请输入手机号:”后就开始配置主界面的布局了。
配置布局在activity_main.xml中进行。

这里注意几个参数:

android:layout_width是当前控件的宽,它有如下几个属性值:

  • wrap_content:空间占用为字体占用宽度。
  • fill_parent:占用整行宽度。
  • match_parent:占用整行宽度。
  • fill_parent和match_parent没有什么功能上的区别,只是match_parent是安卓更新之后把fill_parent换了一个名字而已。

这里还有设置字体相关的:

  • android:textSize=”19sp”,这里单位后面再讲。
  • android:text=”FireLang”这里是设置控件里面的字体的。

这里要注意一点,android:text="@string/hello_world" 这里面的值既可以是现在这个样子,也可以直接改成你要显示的字符串。

这里要注意一个写法:@+id/edittext的意思是在R.java里面的id方法里面添加edittext这个属性。

界面写好后,到了这里我们就要实现拨号的功能了,在实现之前我们应该要获取关于拨号的控件,这里会获取到文本域和按钮这两个控件。

写代码方面当然就写到主程序里面了。叫做MainActivity.java。它是第一个被运行的Activity,运行顺序在AndroidManufest.xml里面配置。

如果我们想要得到某些控件里面的值,你可以通过一个地址找到他。

findViewById(R.id.edittext);//所有的控件都继承了一个类叫做view,可以通过它查找控件

在我们把控件从activity_main.xml中配置好了后,就会自动的在bin里面生成对应的对象,也就是说Android自动帮你实现了,它会在底层自动实现。生成好后就给一个地址,方便我们能够找到这个对象,地址就是在R文件里面。通常就是我们配置好控件后自己设置的地址叫法。

好了开始获取控件吧。

//获取到电话号码
EditText editText=(EditText)findViewById(R.id.editText1);//查找出来的是view对象
//获取到拨号按钮
Button callButton=(Button)findViewById(R.id.button1);

如果用户输入的字符为空怎么办??

那么我们就得给用户一个提示:

Toast.makeText(MainActivity.this,"电话号码不能够为空",1);//显示的时间长为1,短为0

接下来就是拨打电话号码:

//Intent是意图
Intent intent=new Intent();
//设置意图为打电话
intent.setAction(Intent.ACTION_CALL);
//设置打谁的电话
intent.setData(Uri.parse("tel:"+number));
//开启意图
startActivity(intent);

但是,现在编译还是不行,因为还没有加权限,这里需要的权限是拨打电话。没有加权限是不能够正常运行的,会因为得不到权限而自己停止运行。

加权限在AndroidManifest.xml中配置。

选择权限。在permissions->users permission->permission_call_phone

好了现在就行了。注意:一定要记住加权限。

贴上MainActivity.java的源码:

package cn.domarvel.callphone;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
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 editText;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText)findViewById(R.id.editText1);
        //获取到拨号按钮
        Button callButton=(Button)findViewById(R.id.button1);
        callButton.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                String number=editText.getText().toString().trim();
                if("".equals(number)){
                    Toast.makeText(MainActivity.this, "电话号码不能够为空", 1).show();
                    return;
                }
                //Intent是意图
                Intent intent=new Intent();
                //设置意图为打电话
                intent.setAction(Intent.ACTION_CALL);
                //设置打谁的电话
                intent.setData(Uri.parse("tel:"+number));
                //开启意图
                startActivity(intent);
            }

        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

这里要注意一点,editText要么是final要么是全局变量才可以在内部类中被访问,
为什么要是全局变量是因为方法调用时机不同,当调用点击事件的时候,可能方法已经执行完毕,调用的方法中变量已经被回收了,所以需要开启全局变量。那么为什么final也可以呢??

因为final(字符常量或者常量表达式,或者方法调用),那么当在class文件被加载到内存中后在准备过程(不明白准备过程看这篇文章)会把final修饰的字段直接在被引用该值的地方替换成直接引用。

所以就需要这样来解决运行时机不同的问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要开发一个Android Studio拨号程序,你需要遵循以下步骤: 1. 在Android Studio中创建一个新项目,并设置最低支持的API级别。 2. 在项目中创建一个布局文件,用于放置拨号UI元素。 3. 在MainActivity.java文件中编写代码,以便在用户点击“拨号”按钮时拨打电话。 4. 添加必要的权限,例如拨打电话的权限。 下面是一个简单的例子,可以让你开始编写拨号程序: 1. 打开Android Studio并创建一个新项目。 2. 在布局文件中添加一个EditText元素和一个Button元素。 3. 在MainActivity.java文件中添加以下代码: ```java public class MainActivity extends AppCompatActivity { EditText phoneNumber; Button callButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); phoneNumber = findViewById(R.id.phoneNumber); callButton = findViewById(R.id.callButton); // 设置按钮的点击事件 callButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取电话号码 String number = phoneNumber.getText().toString(); // 创建拨号意图 Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:" + number)); // 启动拨号应用程序 startActivity(intent); } }); } } ``` 4. 添加以下权限到AndroidManifest.xml文件中: ```xml <uses-permission android:name="android.permission.CALL_PHONE" /> ``` 现在,你可以编译并运行你的应用程序,尝试拨打电话!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值