注册界面闪退

注册界面闪退

java.lang.RuntimeException:Unable to start activity ComponentInfo{com.example.orderingsystem/com.example.orderingsystem.RegisterActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.


java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

进入注册界面的时候直接闪退了,请问该改哪里?http://img1.sycdn.imooc.com//climg/5e589a1309588a2a05280184.jpg这个是BaseActivity导入的包

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你设置的ActionBar重复了,找一下RegisterActivity代码里是不是有setSupportActionBar(toolbar); 之类的语句,把它删除一下。祝:学习愉快

  • __Yang 提问者 #1
    我的RegisterActivity里面只有setUpToolbar(),有关Toolbar的部分都放在BaseActivity里面了,但是我去掉setUpToolbar,界面还是闪退,还有什么原因吗?
    2020-02-28 14:41:49
提问者 __Yang 2020-02-28 14:42:22

import android.os.Bundle;
       import android.view.View;
       import android.widget.Button;
       import android.widget.EditText;

public class RegisterActivity extends BaseActivity {
   private EditText mEtNewName;
   private EditText mEtNewPassword;
   private EditText mEtPhoneNumber;
   private Button mBtnRegister;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_register);
       setTitle("注册");
       setUpToolbar();
       initView();
       initEvent();

   }


   private void initView() {
       mBtnRegister.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {

           }
       });
   }

   private void initEvent() {
       mEtNewName = (EditText) findViewById(R.id.et_new_name);
       mEtNewPassword = (EditText) findViewById(R.id.et_new_password);
       mEtPhoneNumber = (EditText) findViewById(R.id.et_phone_number);
       mBtnRegister = (Button) findViewById(R.id.btn_register);
   }
}


import android.os.Bundle;
import android.view.View;
import androidx.appcompat.widget.Toolbar;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class BaseActivity extends AppCompatActivity {
   @Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
   }
   protected void setUpToolbar() {
       Toolbar toolbar=(Toolbar)findViewById(R.id.id_toolbar);
       setSupportActionBar(toolbar);
       toolbar.setNavigationOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               onBackPressed();
           }
       });
   }
}


  • 看一下RegisterActivity用的是什么样式,是不是这里导致重复了,你把它改为android:theme="@style/AppTheme.NoActionBar" 再看看它的父样式。是不是parent="AppTheme"
    2020-02-28 17:46:05
  • 提问者 __Yang 回复 好帮手慕雪 #2
    谢谢,解决了。
    2020-02-28 19:54:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师