2016-04-05 18 views
0

Backstory: Çok basit bir Rock paper scissors uygulaması yapıyorum. Uygulamada, rock, kağıt veya makas seçmek için 3 düğmeniz var. Eğer kaya seçtiğinizdeandroid stüdyosunda doğru açılır pencerenin nasıl verimli bir şekilde görüntülenmesi

, ben sorunun bu açılır mesaj dinamik olması gerekiyor ise

"Bilgisayar kaybetmek kağıdı oynar" diyen bir popupwindow var.

Amacım, bilgisayarın bir hareketi rasgele seçmesini ve açılır pencerede görüntülenen oyunun sonucunu belirlemesini sağlamaktır. Örneğin, eğer kayayı seçersem ve bilgisayar makas seçerse, pop-up "Bilgisayar kazandığın makasları seçer!" Mesajını verirdi. Bu muhtemelen hepiniz için oldukça basit ama hala android geliştirme ve android stüdyosu ile aşina olduğum.

Sadece bir popupwindow.xml dosyası olması ve doğru mesajı görüntülemek için değerleri iletmek mümkün mü? "Bilgisayar oyunu 'computermov' gibi 'sonuç'!”

Bunu nasıl uygulayabilirim? Aşağıda, popupwindow'u çağırmak üzere programlanmış düğmelerden yalnızca birine sahip olan page2.java yer almaktadır. Her üç düğme için çalışmam gerek. Ben de popupwindow.xml ve pop.java, popupwindow çağırır yapılan bir sınıf dahil.

popupwindow.xml

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)); 
} 

Peki Düşünüyorum popupwindow.xml o

<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" /> 
olduğunu Tüm postayı yazabilirim Bilgisayar seçimi ve oyunun sonucunun makul sonuçları ve sadece çalışma zamanında id tarafından doğru popup'ı görüntüler. Bunu yapmak için yanlış yol gibi görünüyor ama bence işe yarayabilir?

Bunu yapmanın daha verimli bir yolu nedir? Şimdiden teşekkürler!

+0

'popupwindow' dediğinizde bir uyarıdan bahsediyor musunuz? Yeni bir etkinlik hakkında konuşuyormuşsunuz gibi geliyor – TooManyEduardos

+0

'popupwindow' sadece bir uyarı. – fatalError

+0

Hayır öyle değil. Android veya iOS'ta 'popup pencereleri' yok. Uyarıları alabilirsiniz, ancak pop-up pencereniz değil – TooManyEduardos

cevap

0

Bir AlertDialog, örneğin kullanmak isteyebilirsiniz gibi geliyor.

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

nihayetinde bir üçlü operatör kullanmak mümkün olurdu '(computerWon)? "kayıp": "kazandı" .show(); ' – fatalError

İlgili konular