Guixe94
25/11/14, 23:33:20
Hola,
Quiero mostrar fragments aleatoriamente, y bueno eso ya lo tengo funcionando el problema es que utilizo un numero aleatorio y dependiendo de este numero pues utilizo un Case 0, case 1, etc para abrir cada fragment, estos fragments son diferentes niveles y el problema viene aqui, quiero hacer mas de 100 niveles y claro eso seria un codigo super largo..
Todos los niveles se llaman NivelX (donde X va un numero, por ejemplo Nivel5), hay alguna manera de que me genere el numero aleatorio y despues por ejemplo si el numero es 6 me muestre el fragment 6? Mi codigo actual es el siguiente:
public class Xtreme extends Activity {
String SiguienteNivel;
static int randomFragmentNum;
static int NivelesTotales=30;
static Random random = new Random();
FragmentManager fragmentManager = getFragmentManager();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xtreme);
randomFragmentNum = random.nextInt(7);
Fragment();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.xtreme, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void Fragment() {
switch (randomFragmentNum) {
case 0: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel1()).commit();
break;
}
case 1: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel2()).commit();
break;
}
case 2: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel3()).commit();
break;
}
case 3: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel4()).commit();
break;
}
case 4: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel5()).commit();
break;
}
case 5: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel6()).commit();
break;
}
case 6: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel7()).commit();
break;
}
case 7: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel8()).commit();
break;
}
}
}
Quiero mostrar fragments aleatoriamente, y bueno eso ya lo tengo funcionando el problema es que utilizo un numero aleatorio y dependiendo de este numero pues utilizo un Case 0, case 1, etc para abrir cada fragment, estos fragments son diferentes niveles y el problema viene aqui, quiero hacer mas de 100 niveles y claro eso seria un codigo super largo..
Todos los niveles se llaman NivelX (donde X va un numero, por ejemplo Nivel5), hay alguna manera de que me genere el numero aleatorio y despues por ejemplo si el numero es 6 me muestre el fragment 6? Mi codigo actual es el siguiente:
public class Xtreme extends Activity {
String SiguienteNivel;
static int randomFragmentNum;
static int NivelesTotales=30;
static Random random = new Random();
FragmentManager fragmentManager = getFragmentManager();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xtreme);
randomFragmentNum = random.nextInt(7);
Fragment();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.xtreme, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void Fragment() {
switch (randomFragmentNum) {
case 0: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel1()).commit();
break;
}
case 1: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel2()).commit();
break;
}
case 2: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel3()).commit();
break;
}
case 3: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel4()).commit();
break;
}
case 4: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel5()).commit();
break;
}
case 5: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel6()).commit();
break;
}
case 6: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel7()).commit();
break;
}
case 7: {
fragmentManager.beginTransaction().replace(R.id.co ntainer, new Nivel8()).commit();
break;
}
}
}