Android 为什么我在尝试访问EditText数据时出现空指针异常?
我的应用程序有几个编辑文本框,当按下“完成”按钮时,我验证输入并返回活动结果。问题是,当我试图读取数据时,它是空的,我不知道为什么 这是我的密码:Android 为什么我在尝试访问EditText数据时出现空指针异常?,android,Android,我的应用程序有几个编辑文本框,当按下“完成”按钮时,我验证输入并返回活动结果。问题是,当我试图读取数据时,它是空的,我不知道为什么 这是我的密码: public class CreatePlayer extends Activity implements OnItemSelectedListener { private EditText textFirstName; private EditText textLastName; private EditText jerseyNumber; pr
public class CreatePlayer extends Activity implements OnItemSelectedListener {
private EditText textFirstName;
private EditText textLastName;
private EditText jerseyNumber;
private Spinner spinner;
private int arrayID;
private boolean validFirstName = false;
private boolean validLastName = false;
private boolean validJerseyNumber = false;
private boolean validPosition = false;
private static final String TAG = "CreatePlayer";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.createplayer);
final EditText textFirstName = (EditText) findViewById(R.id.playername_first_edit);
EditText textLastName = (EditText) findViewById(R.id.playername_last_edit);
final EditText jerseyNumber = (EditText) findViewById(R.id.playernum_edit);
arrayID = getIntent().getExtras().getInt("arrayID");
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, arrayID, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
textFirstName
.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
boolean result = v
.getText()
.toString()
.matches(
getString(R.string.regex_first_name));
System.out.println(v.getText());
System.out.println(result);
Pattern p = Pattern
.compile(getString(R.string.regex_first_name));
Matcher m = p.matcher(v.getText());
Log.v(TAG, "pattern=" + p.toString());
Log.v(TAG, "text=" + v.getText());
Log.v(TAG, "result=" + result);
Log.v(TAG, "find=" + m.find());
if (result) {
validFirstName = true;
//textFirstName = (EditText) v.getText();
}
}
return false;
}
});
textLastName
.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
boolean result = v
.getText()
.toString()
.matches(
getString(R.string.regex_last_name));
Pattern p = Pattern
.compile(getString(R.string.regex_last_name));
Matcher m = p.matcher(v.getText());
Log.v(TAG, "pattern=" + p.toString());
Log.v(TAG, "text=" + v.getText());
Log.v(TAG, "result=" + result);
Log.v(TAG, "find=" + m.find());
if (result) {
validLastName = true;
}
}
return false;
}
});
jerseyNumber
.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
Pattern p = Pattern
.compile(getString(R.string.regex_jerseynum));
boolean result = v
.getText()
.toString()
.matches(
getString(R.string.regex_jerseynum));
Matcher m = p.matcher(v.getText());
Log.v(TAG, "pattern=" + p.toString());
Log.v(TAG, "text=" + v.getText());
Log.v(TAG, "result=" + result);
Log.v(TAG, "find=" + m.find());
if (result) {
validJerseyNumber = true;
}
}
return false;
}
});
}
public void okClicked(View v) {
PlayerInfo newPlayer;
if (validFirstName && validLastName && validJerseyNumber
&& validPosition) {
Log.v(TAG, "JerseyNumber = " + jerseyNumber);
// jerseyNumber is null???
int num = Integer.parseInt(jerseyNumber.getText().toString());
String type = spinner.getSelectedItem().toString();
Log.v(TAG, "type = " + type);
String name = textFirstName.getText().toString() + " "
+ textLastName.getText().toString();
newPlayer = new PlayerInfo(BaseBoard.playerIDCounter, num, type,
name);
Intent result = new Intent();
result.putExtra(getString(R.string.players_create), newPlayer);
setResult(5, result);
this.finish();
} else {
Toast toast = Toast.makeText(getApplicationContext(),
"Invalid input. Try something like John Smith, #27, PG",
Toast.LENGTH_SHORT);
toast.show();
}
}
public void cancelClicked(View v) {
this.setResult(-1, null);
this.finish();
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
validPosition = true;
System.out.println(parent.getItemAtPosition(pos).toString());
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
公共类CreatePlayer扩展活动实现OnItemSelectedListener{
私有EditText textFirstName;
私有EditText textLastName;
私人编辑号码;
私人纺纱机;
私有内部阵列;
私有布尔值validFirstName=false;
私有布尔值validLastName=false;
私有布尔值validJerseyNumber=false;
私有布尔值validPosition=false;
私有静态最终字符串标记=“CreatePlayer”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.createplayer);
final EditText textFirstName=(EditText)findViewById(R.id.playername\u first\u edit);
EditText textLastName=(EditText)findViewById(R.id.playername\u last\u edit);
最终EditText jerseyNumber=(EditText)findViewById(R.id.playernum_edit);
arrayID=getIntent().getExtras().getInt(“arrayID”);
微调器微调器=(微调器)findViewById(R.id.Spinner);
ArrayAdapter=ArrayAdapter.createFromResource(
这个,arrayID,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
spinner.setOnItemSelectedListener(此);
textFirstName
.setOnEditorActionListener(新的EditText.OnEditorActionListener(){
@凌驾
公共布尔onEditorAction(TextView v,int actionId,
关键事件(事件){
if(actionId==EditorInfo.IME\u ACTION\u DONE){
布尔结果=v
.getText()
.toString()
.火柴(
getString(R.string.regex_first_name));
System.out.println(v.getText());
系统输出打印项次(结果);
模式p=模式
.compile(getString(R.string.regex_first_name));
Matcher m=p.Matcher(v.getText());
Log.v(标记,“pattern=“+p.toString());
Log.v(标记“text=“+v.getText());
Log.v(标签“result=“+result”);
Log.v(标记,“find=“+m.find());
如果(结果){
validFirstName=true;
//textFirstName=(EditText)v.getText();
}
}
返回false;
}
});
textLastName
.setOnEditorActionListener(新的EditText.OnEditorActionListener(){
@凌驾
公共布尔onEditorAction(TextView v,int actionId,
关键事件(事件){
if(actionId==EditorInfo.IME\u ACTION\u DONE){
布尔结果=v
.getText()
.toString()
.火柴(
getString(R.string.regex_last_name));
模式p=模式
.compile(getString(R.string.regex_last_name));
Matcher m=p.Matcher(v.getText());
Log.v(标记,“pattern=“+p.toString());
Log.v(标记“text=“+v.getText());
Log.v(标签“result=“+result”);
Log.v(标记,“find=“+m.find());
如果(结果){
validLastName=true;
}
}
返回false;
}
});
球衣号码
.setOnEditorActionListener(新的EditText.OnEditorActionListener(){
@凌驾
公共布尔onEditorAction(TextView v,int actionId,
关键事件(事件){
if(actionId==EditorInfo.IME\u ACTION\u DONE){
模式p=模式
.compile(getString(R.string.regex_jerseynum));
布尔结果=v
.getText()
.toString()
.火柴(
getString(R.string.regex_jerseynum));
Matcher m=p.Matcher(v.getText());
Log.v(标记,“pattern=“+p.toString());
Log.v(标记“text=“+v.getText());
Log.v(标签“result=“+result”);
Log.v(标记,“find=“+m.find());
如果(结果){
validJerseyNumber=true;
}
}
返回false;
}
});
}
已单击的公共视图(视图v){
新玩家;
if(validFirstName&&validLastName&&validJerseyNumber
&&有效位置){
Log.v(标签,“JerseyNumber=“+JerseyNumber”);
//球衣号码为空???
int num=Integer.parseInt(jerseyNumber.getText().toString());
字符串类型=微调器.getSelectedItem().toString();
Log.v(标签,“type=“+type”);
字符串名称=textFirstName.getText().toString()+“”
+text lastname.getText().toString();
newPlayer=newplayerInfo(BaseBoard.playerIDCounter,num,type,
姓名);
意向结果=新意向();
result.putExtra(getString(R.string.players\u create),newPlayer);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newcreateplayer);
textFirstName = (EditText) findViewById(R.id.playername_first_edit);
textLastName = (EditText) findViewById(R.id.playername_last_edit);
jerseyNumber = (EditText) findViewById(R.id.playernum_edit);
arrayID = getIntent().getExtras().getInt("arrayID");
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, arrayID, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
textFirstName
.setOnEditorActionListener(new EditText.OnEditorActionListener() {
//@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT) {
boolean result = v
.getText()
.toString()
.matches(
getString(R.string.regex_first_name));
Pattern p = Pattern
.compile(getString(R.string.regex_first_name));
Matcher m = p.matcher(v.getText());
Log.d(TAG, "pattern=" + p.toString());
Log.d(TAG, "text=" + v.getText());
Log.d(TAG, "result=" + result);
Log.d(TAG, "find=" + m.find());
if (result) {
validFirstName = true;
}
}
return false;
}
});
textLastName
.setOnEditorActionListener(new EditText.OnEditorActionListener() {
//@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT) {
boolean result = v
.getText()
.toString()
.matches(
getString(R.string.regex_last_name));
Pattern p = Pattern
.compile(getString(R.string.regex_last_name));
Matcher m = p.matcher(v.getText());
Log.d(TAG, "pattern=" + p.toString());
Log.d(TAG, "text=" + v.getText());
Log.d(TAG, "result=" + result);
Log.d(TAG, "find=" + m.find());
if (result) {
validLastName = true;
}
}
return false;
}
});
jerseyNumber
.setOnEditorActionListener(new EditText.OnEditorActionListener() {
//@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
Pattern p = Pattern
.compile(getString(R.string.regex_jerseynum));
boolean result = v
.getText()
.toString()
.matches(
getString(R.string.regex_jerseynum));
Matcher m = p.matcher(v.getText());
Log.d(TAG, "pattern=" + p.toString());
Log.d(TAG, "text=" + v.getText());
Log.d(TAG, "result=" + result);
Log.d(TAG, "find=" + m.find());
if (result) {
validJerseyNumber = true;
}
}
return false;
}
});
}