应用程序崩溃,不确定错误指向我



每当我在Andriod工作室运行这个程序时,应用程序就会在手机上兑现。

package com.example.homework1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
double tipPercent;
SeekBar seekBar;
TextView tipAmountString;
double tipAmountCalc;
TextView totals;
EditText BaseBillTotal;
EditText TipValue;

double baseValueCalc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TipValue = findViewById(R.id.TipValue);
seekBar = findViewById(R.id.seekBar);
tipAmountString = findViewById(R.id.tipAmountString);
totals = findViewById(R.id.TotalValueScreen);
BaseBillTotal = findViewById(R.id.BillBaseValue);
baseValueCalc = Double.parseDouble(BaseBillTotal.getText().toString());




seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tipAmountString.setText(String.valueOf(progress));
tipAmountCalc = progress*.10;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
RadioGroup radioGroup = findViewById(R.id.tipPercentGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.radioButton){
tipPercent = .10;
}
else if (checkedId == R.id.radioButton2){
tipPercent = .15;
}
else if (checkedId == R.id.radioButton3){
tipPercent = .18;
}
else if (checkedId == R.id.radioButton4)
{
tipPercent = tipAmountCalc;

}

}
});
TipValue.setText(String.valueOf(tipPercent*100));
totals.setText(String.valueOf(tipPercent * baseValueCalc) );
}
}

这是控制台中的错误E/AndroidRuntime:致命异常:main进程:com.example.homework1,PID:7027java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.homework1/com.example.hamework1.MainActivity}:java.lang.ClassCastException:androidx.constraintlayout.widget.EditText在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:2913(在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3048(在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78(在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108(在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68(在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1808(在android.os.Handler.dispatchMessage(Handler.java:106(在android.os.Looper.loop(Looper.java:193(在android.app.ActivityThread.main(ActivityThreads.java:6669(位于java.lang.reflect.Method.ioke(本机方法(网址:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493(网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:858(由以下原因引起:java.lang.ClassCastException:androidx.constraintlayout.widget.constraintlayout无法强制转换为android.widget.EditText网址:com.example.homework1.MainActivity.onCreate(MainActivity.java:32(在android.app.Activity.performCreate(Activity.java:7136(在android.app.Activity.performCreate(Activity.java:7127(在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271(在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:2893(在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3048(在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78(在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108(在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68(在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1808(在android.os.Handler.dispatchMessage(Handler.java:106(在android.os.Looper.loop(Looper.java:193(在android.app.ActivityThread.main(ActivityThreads.java:6669(位于java.lang.reflect.Method.ioke(本机方法(网址:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493(网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:858(

堆栈跟踪准确解释了什么是中断以及原因:

java.lang.ClassCastException: androidx.constraintlayout.widget.ConstraintLayout cannot be cast to android.widget.EditText at com.example.homework1.MainActivity.onCreate(MainActivity.java:32)

MainActivity的第32行是BaseBillTotal = findViewById(R.id.BillBaseValue);

"活动"中已将BaseBillTotal定义为EditText,但根据此例外情况,布局文件中有一个id为BillBaseValueConstraintLayout,因此无法将其强制转换为EditText。仔细检查布局文件,并在其中验证类型和ID。

检查编辑文本的id。根据错误,您可能已经为约束布局提供了BillBaseValueTipValue的id,而不是xml布局中的实际编辑文本。

相关内容

最新更新