我正在关注youtube教程Lapit Chat,我似乎无法弄清楚这个错误。我试图添加一个功能,用户可以更新其状态,并与firebase数据库进行通信。
`public class StatusActivity扩展AppCompatActivity {
private Toolbar mToolbar;
private TextInputLayout mStatus;
private Button mSavebtn;
//Firebase
private DatabaseReference mStatusDatabase;
private FirebaseUser mCurrentUser;
//Progress
private ProgressDialog mProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_status);
//Firebase
mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
String current_uid = mCurrentUser.getUid();
mStatusDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(current_uid);
mToolbar = (Toolbar) findViewById(R.id.status_appBar);
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle("Account Status");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
String status_value = getIntent().getStringExtra("status_value");
mStatus = (TextInputLayout) findViewById(R.id.status_input);
mSavebtn = (Button) findViewById(R.id.status_save_button);
mStatus.getEditText().setText(status_value);
mSavebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Progress
mProgress = new ProgressDialog(StatusActivity.this);
mProgress.setTitle("Saving Changes");
mProgress.setMessage("Please wait while we save the changes");
mProgress.show();
String status = mStatus.getEditText().getText().toString();
mStatusDatabase.child("status").setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
mProgress.dismiss();
} else {
Toast.makeText(getApplicationContext(), "There was some error in saving Changes.", Toast.LENGTH_LONG).show();
}
}
});
}
});
}
}`
接下来是这个错误
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.lapitchat/com.example.android.lapitchat.StatusActivity}: java.lang.ClassCastException: android.support.design.widget.TextInputEditText cannot be cast to android.support.design.widget.TextInputLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6247)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
Caused by: java.lang.ClassCastException: android.support.design.widget.TextInputEditText cannot be cast to android.support.design.widget.TextInputLayout
at com.example.android.lapitchat.StatusActivity.onCreate(StatusActivity.java:55)
at android.app.Activity.performCreate(Activity.java:6757)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6247)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
我已经使Firebase数据库尝试了我在网上发现的其他代码,如果我在第55行和第58行注释掉它仍然会崩溃。我可以让它启动下一个活动而不会崩溃但是如果我尝试编辑文本它崩溃了。
发布于 2018-07-17 18:40:08
将变量mStatus的类型更改为EditText
private TextInputLayout mStatus;
改变
private EditText mStatus;
和
mStatus = (TextInputLayout) findViewById(R.id.status_input);
到
mStatus = (EditText) findViewById(R.id.status_input);
https://stackoverflow.com/questions/-100005587
复制相似问题