2016-04-05 12 views
0

Backstory:私は非常に単純なロックペーパーハサミアプリを作っています。このアプリでは、ロック、紙、またははさみを選択する3つのボタンがあります。あなたは岩を選択するとアンドロイドスタジオに正しいポップアップウィンドウを効率的に表示する方法

は、私はこの問題は、このポップアップメッセージが動的であることが必要である

「コンピュータは、あなたが失う紙を果たしている」と言うpopupwindowを持っています。

私の目標は、コンピュータにランダムに選択して、ポップアップウィンドウに表示されるゲームの結果を決定させることです。たとえば、ロックを選択してコンピュータがハサミを選択した場合、ポップアップは「コンピュータがはさみを選ぶ」というメッセージを生成します。これはおそらく皆さんにとって基本的なことですが、私はまだアンドロイド開発とアンドロイドスタジオに精通しています。

popupwindow.xmlファイルを1つだけ作成し、値を渡して正しいメッセージを表示することはできますか? "コンピュータのように" computermov 'あなたは'結果 '!

どうすれば実装できますか?以下は、popupwindowを呼び出すようにプログラムされたボタンの1つのみを持つpage2.javaです。私は3つすべてのボタンのためにそれを動作させる必要があります。私はpopupwindow.xmlとPop.javaも含めました。これはpopupwindowを呼び出すクラスです。

popupwindow.xml

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Computer played Paper you lose!" 
    android:id="@+id/textView" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

page2.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activitypage2); 

ImageButton btn = (ImageButton) findViewById(R.id.imageButtonRock); 
    //btn is set to the rock image needs to be dynamic 
btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     startActivity(new Intent(page2.this, Pop.class)); 
    } 
}); 
} 

Pop.java

public class Pop extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.popupwindow); 

    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 

    int width = dm.widthPixels; 
    int height = dm.heightPixels; 

    getWindow().setLayout((int)(width*.8),(int)(height*.4)); 
} 

それでは、私が考えていることはpopupwindow.xmlのものです私はすべてのハードコードできたコンピュータの選択と結果のシビルな結果を表示し、実行時にidによって正しいポップアップを表示するだけです。間違ったやり方だと思うけど、うまくいくと思う?

もっと効率的な方法は?前もって感謝します!

+0

「popupwindow」と言っているときにアラートを話していますか?あなたが新しい活動について話しているように聞こえる – TooManyEduardos

+0

'popupwindow'は単なる警告です。 – fatalError

+0

いいえ、そうではありません。アンドロイドやiOSに「ポップアップウィンドウ」はありません。ポップアップを表示せずにアラートを表示することができます – TooManyEduardos

答えて

0

AlertDialogを使用したいと思われるようです。

String computerSelected = ...; 
boolean computerWon = ...; 
new AlertDialog.Builder(context) 
    .setMessage("Computer selected " + computerSelected + ". You " + (computerWon ? "loose" : " win")) 
    .show(); 
+0

のように末尾に3進演算子を使用することは可能でしょうか '(computerWon)? "lost": "won" .show(); ' – fatalError

関連する問題