簡體   English   中英

如何在android studio中有效顯示正確的彈出窗口

[英]how to efficiently display the correct pop up window in android studio

背景故事:我正在制作一個非常簡單的剪刀石頭布應用程序。 在應用程序中,您有3個按鈕可以選擇石頭,紙張或剪刀。

當您選擇岩石時,我有一個彈出窗口,上面寫着“計算機丟失了紙張”

問題在於此彈出消息需要動態。

我的目標是讓計算機隨機選擇一個動作並確定顯示在彈出窗口中的游戲結果。 因此,例如,如果我選擇岩石,而計算機選擇剪刀,則彈出窗口將生成消息“計算機選擇您將贏得的剪刀!”。 這可能對你們所有人來說都是很基本的,但是我仍然對android開發和android studio熟悉。

是否可能只有一個popupwindow.xml文件並傳遞值以顯示正確的消息? 就像“計算機播放'computermov'就是您'結果'!”

我該如何實施? 下面是page2.java,其中只有一個按鈕被編程為調用popupwindow。 我需要使它適用於所有三個按鈕。 我還包括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));
    }
});
}

流行的

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顯示正確的彈出窗口。 似乎是錯誤的做法,但我認為這樣可行嗎?

什么是更有效的方法? 提前致謝!

聽起來您可能想使用AlertDialog ,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM