Pregunta

PRIMERA POSTENCIA.Gracias por la ayuda de antemano.

Tengo dos actividades.La primera actividad se lee en 3 números del usuario a través de los campos de EDITTEXT cuya entrada es "NumberDimal".Los paquenos y los envían a la segunda actividad a través de la intención.

La segunda actividad se lee en los 3 números.Luego necesita multiplicarlos por algunas constantes.Ahí es donde entra el problema. Si el resultado de la multiplicación es demasiado grande (por ejemplo, más de un par de cientos ... no es un umbral constante ... no cerca de lo que se puede retener un doble), entonces lanza una excepción de índiceOutfboundsexception.

//@SuppressWarnings ("serial)")
public class CreationActivity extends Activity {

@Override
public void onCreate (Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.creation);
    TextView txtTitle = (TextView) findViewById(R.id.labelTitle);
    TextView txtArtist = (TextView) findViewById(R.id.labelArtist);
    TextView txtTime = (TextView) findViewById(R.id.labelTitle);

    try {
        Bundle extras = getIntent().getExtras();
        double Hours;
        double Minutes;
        double Seconds;

        if (extras!=null){
            double timerTime[] = extras.getDoubleArray("Time");
            Hours = timerTime[0];
            Minutes = timerTime[1];
            Seconds = timerTime[2];
                            //next line is where the error happens:
            double desired_time = timerTime[0] * 5000;
                            //do some stuff
        }else{
            txtTitle.setText("No data");
        }
    } catch (NumberFormatException e){
    }
}
}   

y el logcat es:

07-27 21:58:41.736: E/AndroidRuntime(31560): FATAL EXCEPTION: main
07-27 21:58:41.736: E/AndroidRuntime(31560): java.lang.RuntimeException: Unable to start     activity ComponentInfo{com.decker.timer/com.decker.timer.CreationActivity}:    java.lang.IndexOutOfBoundsException: Invalid index 4, size is 4
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.os.Looper.loop(Looper.java:137)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.ActivityThread.main(ActivityThread.java:4424)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at java.lang.reflect.Method.invokeNative(Native Method)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at java.lang.reflect.Method.invoke(Method.java:511)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at dalvik.system.NativeStart.main(Native Method)
07-27 21:58:41.736: E/AndroidRuntime(31560): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 4, size is 4
07-27 21:58:41.736: E/AndroidRuntime(31560):    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at java.util.ArrayList.get(ArrayList.java:304)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at com.decker.timer.CreationActivity.onCreate(CreationActivity.java:172)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.Activity.performCreate(Activity.java:4465)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
07-27 21:58:41.736: E/AndroidRuntime(31560):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
07-27 21:58:41.736: E/AndroidRuntime(31560):    ... 11 more
07-27 21:58:49.260: D/TimerActivity(31583): onClicked

¿Fue útil?

Solución

Suena como si estuviera tratando de acceder al 5º (elemento en la posición 4) elemento en una matriz de cuatro longitudes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top