有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java应用程序在打开时崩溃

我正在制作一个安卓应用程序,用户输入一个团队编号,然后切换到一个新的活动,但一旦我制作了Apk文件并运行它,应用程序就会自动崩溃,我不知道为什么

请帮忙

以下是MainActivity的代码:

package com.ftc.pitradar;

import java.util.Locale;
import 安卓.app.Activity;
import 安卓.content.Intent;
import 安卓.os.Bundle;
import 安卓.support.v4.view.ViewPager;
import 安卓.view.Gravity;
import 安卓.view.LayoutInflater;
import 安卓.view.Menu;
import 安卓.view.MenuItem;
import 安卓.view.View;
import 安卓.view.View.OnClickListener;
import 安卓.view.ViewGroup;
import 安卓.widget.Button;
import 安卓.widget.EditText;
import 安卓.widget.TextView;
import 安卓.widget.Toast;
import 安卓.content.Intent;

import com.ftc.pitradar.DataHandler;

public class MainActivity extends Activity {
    public static String TEAMNAME = "Team Name";
    EditText txt = (EditText) this.findViewById (R.id.txt_num);
    Button btn = (Button) findViewById (R.id.scout);
    public boolean dataentered(){
        if(!txt.getText().toString().matches(""))
        {
            return true;
        }
        else{
            return false;
        }
    }
    public void pit()
    {
        if(this.dataentered())
        {
            DataHandler.teamname = txt.getText().toString();
            Intent intent = new Intent(this, PitActivity.class);
            intent.putExtra(TEAMNAME, DataHandler.teamname);
            startActivity(intent);
        }
        else{
            Toast.makeText(this, "Please input all team data", Toast.LENGTH_SHORT).show();
        }
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn.setOnClickListener(new OnClickListener (){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                dataentered();
                pit();
            }
        });
    }
}

共 (2) 个答案

  1. # 1 楼答案

    确保实现了正确的布局XML文件。 如果在右布局中。活动_main不是按钮,它将失败! 你在用哪个IDE

  2. # 2 楼答案

    onCreate()btn上调用setOnClickListener()时,btn为空,因此会抛出NullPointerException

    在类的顶部,声明视图实例变量,但不要分配它们:

    EditText txt;
    Button btn;
    

    然后在onCreate()中:

    txt = (EditText) findViewById (R.id.txt_num);
    btn = (Button) findViewById (R.id.scout);
    

    此时,btn不再为空,因此可以对其调用setOnClickListener()