0

好的,所以我正在尝试让我的应用程序在我的手机上运行,​​看看它是否有效。我注意到我想打电话的按钮没有做任何事情。这是代码:

public boolean onStart(Bundle savedInstanceState) {
View callButton2 = null;
callButton2.setOnClickListener(new OnClickListener() {

     public void onClick(View v) {
         try {
             Intent i = new Intent(Intent.ACTION_CALL);
             String p = "tel:" + getString(R.string.phoneNumber);
             i.setData(Uri.parse(p));
             startActivity(i);
         } catch (ActivityNotFoundException activityException) {
             Log.e("Calling a Phone Number", "Call failed", activityException);}
         finally{}
     }

我将权限放在 Manifest 文件中,但它仍然不起作用。因此,我进行了调查,发现实际上没有找到我的消息来源。这会严重破坏我的应用程序,还是无关紧要?另外,我如何让他们回来?

4

2 回答 2

2

从您调用此函数的位置“onStart(Bundle savedInstanceState)”

public boolean onStart(Bundle savedInstanceState) {

 View callButton2 = null;
 callButton2.setOnClickListener(new OnClickListener() { // <---

此行将引发 NPE 错误。

因此,当您的应用程序正在运行时,我们不会调用此函数public boolean onStart(Bundle savedInstanceState)

于 2012-06-27T18:58:08.840 回答
1

方法onStart()应该是

public void onStart()
{
    super.onStart();
    ...
}

因为方法不正确,Android在Activity Lifecycle. 尝试修复它,然后把你的OnClickListener里面。

编辑:另外,初始化你的ViewsinonCreate()而不是onStart().

就像 Dheeresh Singh 说的那样,你也会NullPointerException因为你将你的分配Button为空而崩溃。您首先需要通过调用或在代码中创建它来将其分配给Button布局中的 a。findViewById()现在你基本上是在打电话null.setOnClickListener(),这没有任何意义。

于 2012-06-27T19:09:51.040 回答