首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.lang.ClassCastException:不能将android.support.design.widget.TextInputEditText转换为android.Support.Design.WidgetT.extInputLayout

java.lang.ClassCastException:不能将android.support.design.widget.TextInputEditText转换为android.Support.Design.WidgetT.extInputLayout
EN

Stack Overflow用户
提问于 2018-07-17 09:17:35
回答 1查看 0关注 0票数 0

我正在关注youtube教程Lapit Chat,我似乎无法弄清楚这个错误。我试图添加一个功能,用户可以更新其状态,并与firebase数据库进行通信。

`public class StatusActivity扩展AppCompatActivity {

代码语言:javascript
复制
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();

                    }

                }
            });

        }
    });



}

}`

接下来是这个错误

代码语言:javascript
复制
    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行注释掉它仍然会崩溃。我可以让它启动下一个活动而不会崩溃但是如果我尝试编辑文本它崩溃了。

EN

回答 1

Stack Overflow用户

发布于 2018-07-17 18:40:08

将变量mStatus的类型更改为EditText

代码语言:txt
复制
private TextInputLayout mStatus;

改变

代码语言:txt
复制
private EditText mStatus;

代码语言:txt
复制
mStatus = (TextInputLayout) findViewById(R.id.status_input);

代码语言:txt
复制
mStatus = (EditText) findViewById(R.id.status_input);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档