android 用intent拨打电话 为什么不能拨出 电话号码是unknown? 40

android新手遇到点小问题,请求大家帮助~代码就是书上的<LinearLayoutxmlns:android="http://schemas.android.com/... android新手遇到点小问题,请求大家帮助~

代码就是书上的
<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" >

<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:textColor="@android:color/black"
android:textSize="25px">
<requestFocus />
</EditText>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打电话"
android:textColor="@android:color/black"
android:textSize="25px"/>
</LinearLayout>

Activity的是

package com.callbyintent;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText numberTV=(EditText)findViewById(R.id.editText1);
final String number=numberTV.getText().toString();
Button dial=(Button)findViewById(R.id.button);
dial.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
startActivity(intent);

}
});
}
}

权限也加了

如果把 intent.setData(Uri.parse("tel:"+number));改称 intent.setData(Uri.parse("tel://10086));
或者final String number=numberTV.getText().toString();改称final String number=“10086”;
就都一切正常

如果按照原来代码运行 不显示拨号界面 看通话记录就是unknown
感觉就是EditText不识别输入的数字,这是什么原因?
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏40(财富值+成长值)
gxyikatong
2017-12-18
知道答主
回答量:1
采纳率:0%
帮助的人:955
展开全部
把String number=numberTV.getText().toString();写在onclick方法里,放在intent.setData方法的前面。
因为number在onCreate()方法里面直接toString的话EditText是空的,当然number就是空值,你传到拨号里也是空
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-03
展开全部
我也做过类似的程序,你试试这样,应该能改对。
Uri callUri = Uri. parse ( "tel:10086" );改成
Uri callUri = Uri. parse ( "tel://10086" );
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式