应用程序在打开时崩溃

时间:2014-09-14 20:49:17

标签: java android android-activity

我正在创建一个Android应用程序,用户输入一个团队编号,然后切换到一个新的活动,但是一旦我制作Apk文件并运行它,应用程序会自动崩溃,我无法说明原因。< / p>

请帮忙。

以下是MainActivity的代码:

package com.ftc.pitradar;

import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.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 个答案:

答案 0 :(得分:1)

当您在setOnClickListener()的{​​{1}}上致电btn时,onCreate()为空,因此会引发btn

在课程顶部,声明您的视图实例变量但尚未指定它们:

NullPointerException

然后在EditText txt; Button btn;

onCreate()

此时,txt = (EditText) findViewById (R.id.txt_num); btn = (Button) findViewById (R.id.scout); 不再为空,因此您可以在其上调用btn

答案 1 :(得分:0)

确保您已实现正确的布局XML文件。 如果在R.layout.activity_main中不是按钮,它将失败! 您使用的是哪个IDE?