如何解决错误“致命错误:主要无法启动活动”

时间:2019-06-13 09:50:43

标签: java android

我一直在尝试运行该应用程序,但是每次都抛出相同的错误,我已经尝试了所有可能的方法。我真的很想要专家的帮助。 如果我也应该提供.xml文件,那么这是一个简单的应用程序,可以通过idk进行数字计算和处理,但是如果需要,我肯定会提供。

   public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            final EditText e1=(EditText) findViewById(R.id.name);
            final EditText e2=(EditText)findViewById(R.id.date);
            final EditText e3=(EditText)findViewById(R.id.month);
            final EditText e4=(EditText)findViewById(R.id.year);
            Button b=(Button) findViewById(R.id.button);

            char[] n = e1.getText().toString().toCharArray();
            int date = Integer.parseInt(e2.toString());
            int month = Integer.parseInt(e3.toString());
            int year = Integer.parseInt(e4.toString());
            int nn = 0;
            int driver=date, conductor=date+month+year;
            int temp,k=0;


    //EditText Jumping Module-------------------------------


        e2.addTextChangedListener(new TextWatcher() {

            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            public void onTextChanged(CharSequence s, int start, int before,
                                      int count) {
                int tl = e2.getText().length();

                if (tl >= 2) {
                    e3.requestFocus();
                }
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
        e3.addTextChangedListener(new TextWatcher() {

            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            public void onTextChanged(CharSequence s, int start, int before,
                                      int count) {
                int lt = e3.getText().length();

                if (lt >= 2) {
                    e4.requestFocus();
                }
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

我认为代码的其余部分没有任何问题,因此我已经在上面提供了。谢谢

1 个答案:

答案 0 :(得分:0)

jhamon的评论是当场的。您的EditTexts很可能为空,用户尚未输入任何值,但是您尝试获取该值。但是,由于您不包括日志 xml (在撰写本文时),因此我将假定EditTexts具有您在xml,这是您此时想要获得的值。

对于EditText e1,您将获得如下文本:

e1.getText().toString()

对于其余的EditText,您缺少getText()。您只需说:

int date = Integer.parseInt(e2.toString());
int month = Integer.parseInt(e3.toString());
int year = Integer.parseInt(e4.toString());

因此添加getText()

但是请添加日志输出,然后添加xml。这确实会帮助我们为您提供帮助! ;)