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{}
     }

マニフェストファイルにアクセス許可を入れましたが、それでも機能しません。それで私は調査していて、文字通り私の情報源が見つからないことを知りました。これは私のアプリをひどく傷つけますか、それとも問題ではありませんか?また、どうすればそれらを取り戻すことができますか?

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中に入れてみてください。

編集: また、ではなくViewsinで初期化することをお勧めします。onCreate()onStart()

Dheeresh Singh が言ったように、 null にNullPointerException割り当てているため、 a でもクラッシュします。まず、呼び出すか、コードで作成して、レイアウト内Buttonの に割り当てる必要があります。現在、あなたは本質的に意味をなさない呼び出しを行っています。ButtonfindViewById()null.setOnClickListener()

于 2012-06-27T19:09:51.040 に答える