简体   繁体   English

从微调器中选择项目后,如何在单击按钮时显示结果

[英]How to display results on click of button after selecting items from spinner

I have written a code to roll dice. 我写了一个掷骰子的代码。 When user clicks on 1 dice,it should give number between 1 and 6 .When user clicks on 2 dice it should generate numbers between 2 and 12.I used spinner and image button.But I don't know where to place the logic for dice 1 and dice 2 to generate numbers in that range . 当用户点击1个骰子时,它应该给出1到6之间的数字。当用户点击2个骰子时,它应该生成2到12之间的数字。我使用了微调器和图像按钮。但我不知道在哪里放置逻辑骰子1和骰子2生成该范围内的数字。

public class MainActivity extends AppCompatActivity implements 

AdapterView.OnItemSelectedListener {


private ImageButton  btnroll;
private Spinner spinner;
private static final String[] paths = {"1 dice", " 2 dice"}

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    spinner = (Spinner)findViewById(R.id.spinner);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
            android.R.layout.simple_spinner_item,paths);

  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);
    btnroll= findViewById(R.id.btnRoll);

}
     public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
   switch (position) {
        case 0:


        case 1:


        case 2:


    }
}

I know the code to display results of image button is something like this.But don't know how to connect this with spinner. 我知道显示图像按钮结果的代码是这样的。但是不知道如何用微调器连接它。 The sample onclick button code is just for dice 1.Please help 示例onclick按钮代码仅适用于骰子1.请帮助

   btnroll.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
    Random rand = new Random();
    int result = rand.nextInt( (1 - 6) + 1) + 1;
    final int random = new Random().nextInt((max - min) + 1) + min;
  Toast.makeText(getApplicationContext(),String.valueOf(result),Toast.LENGTH_LONG).show();


}
     })

Try declaring the result variable in btnroll as class variable. 尝试将btnroll中的结果变量声明为类变量。 This way you can access the value outside. 这样您就可以访问外部的值。 Hope it helps. 希望能帮助到你。

int max, min;
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
    switch (position) {
       case 0:
            break;
       case 1:
            min = 1;
            max = 6;
            break;
       case 2:
            min = 2;
            max = 12;
            break;
      }
}

Or if no need using max/min outside, 或者如果不需要在外面使用max / min,

btnroll.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        int index = spinner.getSelectedItemPosition();
        if (index == 0) {
            return;
        }
        int min = index * 1;
        int max = index * 6;
        Random rand = new Random();
        final int random = new Random().nextInt((max - min) + 1) + min;
        Toast.makeText(getApplicationContext(),String.valueOf(result),Toast.LENGTH_LONG).show();
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM