2016-12-30 1 views
0

J'essaie de changer d'actvités. Chaque activité a une seule vue de l'image, donc je n'ai pas trouvé nécessaire de montrer xml. C'est un programme relativement simple. Basé sur le IF-STATEMENT, le programme devrait passer à sa vue appropriée. Toutes les images sont des jpegs 72dpi.Echec Allocation d'allocation d'octets (vide) avec des octets (vides) sans 57 Mo jusqu'à ce que OOM

package app.com.example.android.chancetheoracle; 
 

 
import android.content.Intent; 
 
import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.widget.Toast; 
 

 
import java.util.Random; 
 

 
public class MainActivity extends AppCompatActivity { 
 

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

 
     Toast.makeText(this, "Think Of Your Question, Then Tap Anywhere.",Toast.LENGTH_LONG).show(); 
 
    } 
 

 
    public void onClick(View view){ 
 
     Random answer = new Random(); 
 

 
     int ask = answer.nextInt(6) + 1; 
 

 
     if (ask == 1){ 
 
      Intent intent = new Intent(this, redThree.class); 
 
      startActivity(intent); 
 
      Toast.makeText(this, "2/5! Click Anywhere To Ask Again.",Toast.LENGTH_SHORT).show(); 
 
     } 
 
     else if (ask == 2){ 
 
      Intent intent = new Intent(this, greenThree.class); 
 
      startActivity(intent); 
 
      Toast.makeText(this, "3/5! Click Anywhere To Ask Again.",Toast.LENGTH_SHORT).show(); 
 
     } 
 
     else if (ask == 3){ 
 
      Intent intent = new Intent(this, greenFour.class); 
 
      startActivity(intent); 
 
      Toast.makeText(this, "4/5! Click Anywhere To Ask Again.",Toast.LENGTH_SHORT).show(); 
 
     } 
 
     else if (ask == 4){ 
 
      Intent intent = new Intent(this, redFour.class); 
 
      startActivity(intent); 
 
      Toast.makeText(this, "1/5! Click Anywhere To Ask Again.",Toast.LENGTH_SHORT).show(); 
 
     } 
 
     else if (ask == 5){ 
 
      Intent intent = new Intent(this, redFive.class); 
 
      startActivity(intent); 
 
      Toast.makeText(this, "0/5! Click Anywhere To Ask Again.",Toast.LENGTH_SHORT).show(); 
 
     } 
 
     else if (ask == 6){ 
 
      Intent intent = new Intent(this, greenFive.class); 
 
      startActivity(intent); 
 
      Toast.makeText(this, "5/5! Click Anywhere To Ask Again.",Toast.LENGTH_SHORT).show(); 
 
     } 
 
     else { 
 
      Toast.makeText(this, "Think Of Your Question, Then Tap Anywhere.",Toast.LENGTH_LONG).show(); 
 
     } 
 
    } 
 

 
    public static class greenThree extends AppCompatActivity { 
 

 
     @Override 
 
     protected void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
      setContentView(R.layout.activity_green_three); 
 
     } 
 
    } 
 

 
    public static class redThree extends AppCompatActivity { 
 

 
     @Override 
 
     protected void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
      setContentView(R.layout.activity_red_three); 
 
     } 
 
    } 
 

 
    public static class greenFour extends AppCompatActivity { 
 

 
     @Override 
 
     protected void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
      setContentView(R.layout.activity_green_four); 
 
     } 
 
    } 
 

 
    public static class redFour extends AppCompatActivity { 
 

 
     @Override 
 
     protected void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
      setContentView(R.layout.activity_red_four); 
 
     } 
 
    } 
 

 
    public static class greenFive extends AppCompatActivity { 
 

 
     @Override 
 
     protected void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
      setContentView(R.layout.activity_green_five); 
 
     } 
 
    } 
 

 
    public static class redFive extends AppCompatActivity { 
 

 
     @Override 
 
     protected void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
      setContentView(R.layout.activity_red_five); 
 
     } 
 
    } 
 
}

+0

Il est évident que les images sont trop grandes (résolution) – Selvin

Répondre

-1

Vous ne l'avez pas affecté l'auditeur onClick à quoi que ce soit. Ça ne va pas se déclencher tout seul.

final Button button = (Button) findViewById(R.id.button_id); 
button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     // Perform action on click 
    } 
}); 

Pour la question de la mémoire, reportez-vous à ce fil: Android:java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM

https://developer.android.com/reference/android/widget/Button.html

+0

* Vous ne l'avez pas affecté l'auditeur onClick * Et voilà pourquoi il a OOM ... Intéressant :-) ... Aussi, il pourrait être fait via la mise en page XML ... – Selvin

+0

@Selvin Au moins une partie du problème qu'il décrit est "Basé sur le IF-STATEMENT le programme devrait passer à sa vue appropriée " Et il s'est mis en quatre pour dire que les fichiers XML n'ont rien d'autre que l'image. –

+0

Il n'a pas écrit que cette partie ne fonctionne pas ... – Selvin