错误是在总活动java类中创建的
这是logcat
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.ser.Tra.TerreadA活动中的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3027)处于android.app.servertransaction的Android.app.servertransaction.LaunchActivityItem.exe(LaunchActivityItem.java:78) . 在Android.app.Handler的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1786)的android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:73)上的TransactionExecutor.executeCallbacks(TransactionExecutor.java:101) .dispatchMessage(Handler.java:106)位于android.app.Looper.loop(Looper.java:164)的android.app.ActivityThread.main(ActivityThread.java:6656),位于java.lang.reflect.Method.invoke(本地方法)在com.android.internal.os.RuntimeInit $ MethodAndArg com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)中的sCaller.run(RuntimeInit.java:438)引起:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-2 . 在java.lang .string.substring(String.java:2036)位于android.app的android.app.Activity.performCreate(Activity.java:7117)的com.example.prudentmubasha.ainnaresto.TotalActivity.onCreate(TotalActivity.java:33) . android.app.A活动中的Activity.performCreate(Activity.java:7108)在Android.app.ActivityThread.handleLaunchActivity(ActivityThread)上的android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1262)处于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2867) .java:3027)在Android.app.servertransaction.TransactionExecutor.execute的android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:101)上的android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) TransactionExecutor.java:73)在android.app.ActivityThread $ H.handleMessage(ActivityT) hread.java:1786)android.app.Handler.dispatchMessage(Handler.java:106)android.app.Looper.loop(Looper.java:164)android.app.ActivityThread.main(ActivityThread.java:6656) )com.android.internal.os.ZygoteInit.main中的com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)中的java.lang.reflect.Method.invoke(Native Method)(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;
}
}
}
1 回答
你不能从3到1交换子串
对于