我正在创建一个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();
}
});
}
}
答案 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?