0

私はアンドロイドの初心者であり、OverlayItems も使用するマップ アクティビティを持っています。私のオーバーレイ クラスの onButtonTap メソッド内で、startActivity を実行したいので、intent.ACTION_CALL を使用できます。

Intent callIntent = new Intent(Intent.ACTION_CALL);   
callIntent.setData(Uri.parse("tel:"+MapActivity.phonenumber0));
startActivity(callIntent);

上記のコードでは、startActivity(Intent) のメソッドを作成するよう求められていますが、これは理解できません。そして試してみると…

Intent callIntent = new Intent(Intent.ACTION_CALL);   
callIntent.setData(Uri.parse("tel:"+MapActivity.phonenumber0));
MapActivity.startActivity(callIntent);

非静的メソッドへの非静的参照への静的参照を作成できないと書かれています。そして、タップされているボタンであるオブジェクトのコンテキストを使用しようとすると、そうすることができません。

Intent callIntent = new Intent(Intent.ACTION_CALL);   
callIntent.setData(Uri.parse("tel:"+MapActivity.phonenumber0));
ContextObj.startActivity(callIntent);

もちろん、このコード ブロックをメインのアクティビティに移動するには、独自の一連の問題を提示する静的メソッドが必要です。

startActivity に適切なコンテキストを設定するにはどうすればよいですか? どんな助けでも大歓迎です。

4

3 に答える 3

6

このように MapActivity クラスにメソッドを作成して、コンテキストを取得できます...

編集: このような静的変数を取ります...

public static Context mContext;

アクティビティの onCreate() メソッドで、基本コンテキストをそれに割り当てます...

mContext = getBaseContext();

& mContext を返す...

public static Context getContext() {
    return mContext;
}

& 活動を開始するために非活動クラスに呼び出します...

Intent callIntent = new Intent(Intent.ACTION_CALL);   
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
callIntent.setData(Uri.parse("tel:"+MapActivity.phonenumber0));
MapActivity.getContext().startActivity(callIntent);
于 2012-09-07T14:15:52.900 に答える
1

アクティビティを開始する前にこれを試して、このフラグを設定してください:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

それがうまくいくことを願っています。

于 2012-09-07T14:20:50.327 に答える
0

アクティビティ (マップ アクティビティ) のコンテキストをクラスに渡してから使用できます。

于 2012-09-07T14:03:32.573 に答える