AndroidStudioでガチャのシミュレーションアプリを制作しています。
アクティビティー間で受けっとった配列の要素が3の場合なら3回分受けわたしてテキストを3つ表示させます。
しかし、渡す要素が1の場合にはテキストを1つしか変更しないようにしたいのですが、三回分のテキストを表示させるようにしてしまっているのでうまく表示できません。受け渡した配列分のみテキストを表示させる方法がありましたらご教示していただけないでしょうか。
public class MainActivity extends AppCompatActivity { Random random = new Random(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void resultBtn(View v){//3連ガチャ(ボタン)配列の要素をResultアクティビティーへ渡して移動 int[] reR =new int [3]; Arrays.fill(reR, random.nextInt(100));//1から100のランダムな値を要素分習得 Intent intent = new Intent(this, Result.class); intent.putExtra("result", reR); startActivity(intent); } public void resultBtn2(View v){//1連ガチャ(ボタン)配列の要素をResultアクティビティーへ渡して移動 int[] reR =new int [1]; Arrays.fill(reR, random.nextInt(100));//1から100のランダムな値を要素分習得 Intent intent = new Intent(this, Result.class); intent.putExtra("result", reR); startActivity(intent); } }
public class Result extends AppCompatActivity { private TextView date;//ガチャの結果 private TextView date2;//ガチャの結果 private TextView date3;//ガチャの結果 int n, r, s, ;//ガチャの確率の変数 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); date = findViewById(R.id.a); date2 = findViewById(R.id.b); date3 = findViewById(R.id.c); n = 45;//ノーマル r = 80;//レア s = 95;//スーパーレア gachaResult(); } public void gachaResult(){ Intent intent = getIntent(); int[] reR = intent.getIntArrayExtra("result"); if(n>reR[0]){//45%(一回目) showNetaN(date); }else if(n<=reR[0] && r>reR[0]){//35% showNetaR(date); }else if(r<=reR[0]&& s>reR[0]){//15% showNetaS(date); }else{//5% showNetaSS(date); } if(n>reR[1]){//二回目 showNetaN(date2); }else if(n<=reR[1] && r>reR[1]){ showNetaR(date2); }else if(r<=reR[1]&& s>reR[1]){ showNetaS(date2); }else{ showNetaSS(date2); } if(n>reR[2]){//三回目 showNetaN(date3); }else if(n<=reR[2] && r>reR[2]){ showNetaR(date3); }else if(r<=reR[2]&& s>reR[2]){ showNetaS(date3); }else{ showNetaSS(date3); } } public void showNetaN (TextView textView){//(ノーマル) ArrayList<String> list = new ArrayList<String>(); list.add("1(N)"); list.add("2(N)"); list.add("3(N)"); Collections.shuffle(list);// 配列の中身をシャッフル textView.setText(list.get(0));//表示 } public void showNetaR (TextView textView){//(レア) ArrayList<String> list = new ArrayList<String>(); list.add("1(R)"); list.add("2(R)"); list.add("3(R)"); Collections.shuffle(list);// 配列の中身をシャッフル textView.setText(list.get(0));//表示 } public void showNetaS (TextView textView){//(スーパーレア) ArrayList<String> list = new ArrayList<String>(); list.add("1(SR)"); list.add("2(SR)"); list.add("3(SR)"); Collections.shuffle(list);// 配列の中身をシャッフル textView.setText(list.get(0));//表示 } public void showNetaSS (TextView textView){//(最高レア) ArrayList<String> list = new ArrayList<String>(); list.add("1(SSR)"); list.add("2(SSR)"); list.add("3(SSR)"); Collections.shuffle(list);// 配列の中身をシャッフル textView.setText(list.get(0));//表示 } }
回答1件
あなたの回答
tips
プレビュー