A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 执笔梦 金牌黑马   /  2014-5-20 12:42  /  2583 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 执笔梦 于 2014-5-21 13:55 编辑

package com.cc.iphonecall;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.os.Build;

//刚刚学android,很多问题都不懂,求教,
public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                if (savedInstanceState == null) {
                        getFragmentManager().beginTransaction()
                                        .add(R.id.container, new PlaceholderFragment()).commit();
                }
                /*
                        电话拨打器代码
                                1.获取拨打钮,添加点击事件(接收的是一个事件(动作))
                 * */
                Button callButton = (Button) findViewById(R.id.bt_call);
                callButton.setOnClickListener(new InnerListener());
                        
        }
        
        private class InnerListener implements OnClickListener{
                /*
                 *         按钮点击事件要做的动作
                 *
                 * */
                @Override
                public void onClick(View v) {
                        /*
                         * 获取输入的数据(电话号码)
                         * */
                        EditText call_number= (EditText)MainActivity.this.findViewById(R.id.et_number);
                        String tel_number = call_number.getText().toString();
                        
                        /*
                         * Intent 意图:想干一点什么事。
                         *                 比如:泡妞,泡是动作,妞是数据。
                         *                         打电话,打是动作,电话(号码)是数据,
                         * */
                        Intent intent = new Intent();
                        intent.setAction(Intent.ACTION_CALL); //动作,
                        /*
                         *设置动作数据 ,启动动作后你要操作的数据。
                         * 参数uri,
                         *         url(子):统一资源定位符,
                         *         uri(父):统一资源标示符
                         * */
                        intent.setData(Uri.parse("tel"+tel_number));
                        
                        //启动动作
                        startActivity(intent);

                }
               
        }
在avd运行时,它报了个RuntimeException:unable to start activity ComponetInfo(....) :java.lang.NullPointerException。
不知那错了...

7 个回复

倒序浏览
是空指针异常,在你的错误信息那行代码下面会有一行错误信息,具体就是会显示你的activity名,那里会显示java第几行是有错(空指针),电脑不在身边不能帮你运行抱歉,还有在Eclipse中要显示行号,这个应该会吧
回复 使用道具 举报
代码看起来,没错,该初始化的都初始化了,你错误信息是指向到第几行的?你试着把
Button callButton = (Button) findViewById(R.id.bt_call);
EditText call_number= (EditText)MainActivity.this.findViewById(R.id.et_number);
改为成员变量试试
回复 使用道具 举报
zy524488 发表于 2014-5-20 14:02
是空指针异常,在你的错误信息那行代码下面会有一行错误信息,具体就是会显示你的activity名,那里会显示ja ...

callButton.setOnClickListener(new InnerListener());
他说这行错了,
回复 使用道具 举报
vihuela 发表于 2014-5-20 15:14
代码看起来,没错,该初始化的都初始化了,你错误信息是指向到第几行的?你试着把
Button callButton = (B ...

callButton.setOnClickListener(new InnerListener());这行错了,改为成员变量了,没用,为什么会报错呢,在R.java有 bt_call常量。
回复 使用道具 举报
能给个界面设计的代码吗
回复 使用道具 举报
我不知道这里为什么要保存界面的状态,是为了切换到拨打电话界面时当前的Activity不被kill吗
回复 使用道具 举报
还没学安卓,加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马