[英]Random XML Layout on button click
我有20個XML布局。 我想發生的是單擊按鈕時顯示隨機的xml布局。 我嘗試並閱讀了與我相同的問題 ,但是我沒有工作。
例如,在Level1類中,當用戶單擊AlertDialog中的PositiveButton時,將打開隨機XML布局(20級或15級而不是2級)。
這是Level1類中的代碼(相同的模式適用於其余類)
public class Luzon1 extends Activity { private String [] answers; private Button answerButton; private TextView scoreTxt, showClue; private EditText answerText; int scoreNew=0; public Button yes; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_luzon1); } public void init() { //correct answer answers=new String[]{"Tarlac"}; (R.id.AnswerButton); answerButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub checkAnswer(); } }); } public boolean isCorrect(String answer) { return(answer.equalsIgnoreCase(answers[currentQuestion])); } public void checkAnswer() { String answer=answerText.getText().toString(); if(isCorrect(answer)) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Congratulations! You will receive P10!"); builder.setMessage("Did you know that Former bla bla bla Did you know that Former bla bla bla Did you know that Former bla bla bla"); builder.setIcon(android.R.drawable.btn_star_big_on); builder.setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { String userData=scoreTxt.getText().toString(); int userNumber=Integer.parseInt(userData); Intent intent=new Intent(Luzon1.this, Luzon2.class); intent.putExtra("parameter name", userNumber); startActivity(intent); Luzon1.this.finish(); System.exit(0); } }); AlertDialog alert = builder.create(); alert.show(); // Show Alert Dialog
提前非常感謝您。 任何代碼段都將提供很大的幫助。
onClick()
內部設置布局 如果您希望此代碼位於上一個活動(如上所示)的onClick()
方法中,請使用以下代碼:
@Override
protected void onClick(DialogInterface dialog, int which) {
Random generator = new Random();
int number = generator.nextInt(NUMBER_OF_LEVELS) + 1;
Class activity;
switch(number) {
case 1:
activity = LevelOne.class;
break;
case 2:
activity = LevelTwo.class;
break;
case 3:
activity = LevelThree.class;
break;
case 4:
activity = LevelFour.class;
break;
case 5:
activity = LevelFive.class;
break;
...
case 20:
activity = LevelTwenty.class;
break;
}
Intent intent = (getBaseContext(), activity);
startActivity(intent);
}
嘗試這個:
在onCreate之前聲明一個公共的靜態int計數=0。然后,在onClick中,將計數增加1(count ++)。使用switch語句,例如(當計數變為20時不要忘記將計數器重置為0)
void onClick(){
count++;
switch(count) {
case 1:
setContentView(R.layout.yourLayout1);
break;
case 2:
setContentView(R.layout.yourLayout2);
break;
case 3:
setContentView(R.layout.yourLayout3);
break;
case 4:
setContentView(R.layout.yourLayout4);
................................
................................
case 20:
setContentView(R.layout.yourLayout20);
break;
}
if(count==20){
count = 0;
}
}
此外,您也可以使用Math.random()
並將其分配給count
(記住檢查(使用if語句) Math.random()
返回的值小於或等於20 Math.random()
而不是每次用戶單擊都增加計數。 )
希望對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.