ошибка была создана в классе общей активности Java
вот логкат
java.lang.RuntimeException: невозможно запустить действие. ComponentInfo {com.example.prudentmubasha.ainnaresto / com.example.prudentmubasha.ainnaresto.TotalActivity}: java.lang.StringIndexOutOfBoundsException: индекс строки вне диапазона: -2
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2892)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3027)
на android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)
на android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:101)
на android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:73)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1786)
на android.os.Handler.dispatchMessage (Handler.java:106)
на android.os.Looper.loop (Looper.java:164)
на android.app.ActivityThread.main (ActivityThread.java:6656)
в java.lang.reflect.Method.invoke (родной метод)
в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:823)
Вызвано: java.lang.StringIndexOutOfBoundsException: индекс строки вне диапазона: -2
на java.lang.String.substring (String.java:2036)
в com.example.prudentmubasha.ainnaresto.TotalActivity.onCreate (TotalActivity.java:33)
на android.app.Activity.performCreate (Activity.java:7117)
на android.app.Activity.performCreate (Activity.java:7108)
на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1262)
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2867)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3027)
на android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)
на android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:101)
на android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:73)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1786)
на android.os.Handler.dispatchMessage (Handler.java:106)
на android.os.Looper.loop (Looper.java:164)
на android.app.ActivityThread.main (ActivityThread.java:6656)
в java.lang.reflect.Method.invoke (родной метод)
в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:823)
здесь произошла ошибка места
enter c while (st.hasMoreElements()) {
//Toast.makeText(getApplicationContext(), st.nextElement().toString().substring(0,1), Toast.LENGTH_LONG).show();
test = st.nextElement().toString().substring(3,1);
if(count>0)
total+= Float.parseFloat(test);
count++;
}
вот файл активности java класса
mApp=((pizza) getApplicationContext());
et_summary = (EditText) findViewById(R.id.et_summary);
tv_total = (TextView) findViewById(R.id.tv_total);
//Toast.makeText(getApplicationContext(), "You have chosen the" + " " + mApp.getGlobalVarValue(), Toast.LENGTH_LONG).show();
et_summary.setText(mApp.getGlobalVarValue());
String str = mApp.getGlobalVarValue();
StringTokenizer st = new StringTokenizer(str,"$");
String test="";
float total=0;
int count=0;
while (st.hasMoreElements()) {
//Toast.makeText(getApplicationContext(), st.nextElement().toString().substring(0,1), Toast.LENGTH_LONG).show();
test = st.nextElement().toString().substring(3,1);
if(count>0)
total+= Float.parseFloat(test);
count++;
}
et_summary.setText(mApp.getGlobalVarValue());
tv_total.setText("Total :" + total+"");
mApp.setGlobalClear();
}
public boolean isFloat( String input )
{
try
{
Float.parseFloat( input );
return true;
}
catch( Exception e)
{
return false;
}
}
}