单击按钮时的随机 XML 布局

Random XML Layout on button click

我有 20 个 XML 布局。我想要发生的是在单击按钮时显示随机 xml 布局。我尝试阅读 same problem 作为我的,但我没有工作。

例如在 Level1 class 中,当用户单击 AlertDialog 中的 PositiveButton 时,将打开随机 XML 布局(Level 20 或 Level 15 而不是 Level 2)。

这是 Level1 中的代码 class(相同的模式适用于其余 classes)

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()

如果您希望此代码位于您之前 activity(如上所示)的 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之前声明一个public static int count = 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 的值..)

希望对您有所帮助..