- 私のAndroidプログラミングと私はシンプルなポンクローンをやろうとした最初のプログラムの開発のための新しいです。私のprogrammは、異なる方法-to'sと私は自分自身を扱うことができた少しから縫い合わせています。
ベースライン:私は「プレイ」ボタンを押すと、そのContentViewとしての私の「GameView」に設定私の「GameActivity」を呼び出します。ゲーム、ボールバウンス、プレイヤー(s)は、敵からGameView Iハンドルのすべての内部。しかし、私の問題は、一人のプレイヤーの勝利後、それから抜け出す方法です。
最初に私には、単に彼が再び再生したり、メニューに戻りたい場合はプレイヤーを尋ねるウィッヒダイアログを呼び出すために望んでいたが、私はイムので、「GameView」で、もちろん関連何でも活動を行う傾けます。私はそれをしようとすると、常に「非静的メソッドは静的なコンテキストから参照することはできません」ので、私はカント私に語りました。
だから私のGameActivityは非常に簡単です:
public class GameActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GameView(this));
}
}
最初に私には単に私のビューには、このようなものを置くために:
InfoDialog infoDialog = new InfoDialog();
infoDialog.show(getSupportFragmentManager(), "infoDialog");
しかし、私は私の知る限り、私はビューであることを行うcan't理解されるように述べています。
TLDRは:どのように私は私の停止またはActivityからContentViewを変更したり、表示することをダイアログ内部を呼び出すことができますか?
私はへイムは非常に新しい言ったように私はこれをしなかったような方法は非常に重畳されている場合ので、申し訳ありませんAndroidのプログラミング。
あなたはGameViewコンストラクタにこの活動のコンテキストを保存し、必要なときにそれを使用することができます。
class GameView extends View {
private Context mContext;
//Constructor
public GameView (Context context) {
super(context);
mContext = context
}
//Can be called inside the view
public ShowDialog() {
AlertDialog alertDialog = new AlertDialog.Builder(mContext).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("Alert message to be shown");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
}