Android 为什么我得到空指针异常?
我想返回一个布尔值来删除代码中的按钮。我尝试从PassworConfirmationActivity中获取布尔值,并尝试在IndexActivity中使用它,但我得到了一个NullPointerExceptionAndroid 为什么我得到空指针异常?,android,android-intent,Android,Android Intent,我想返回一个布尔值来删除代码中的按钮。我尝试从PassworConfirmationActivity中获取布尔值,并尝试在IndexActivity中使用它,但我得到了一个NullPointerException public class PasswordConfirmationActivity extends Activity { Button ButtonClick; EditText EdtText; Boolean control =new Boolean(false); @Over
public class PasswordConfirmationActivity extends Activity {
Button ButtonClick;
EditText EdtText;
Boolean control =new Boolean(false);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password_confirmation);
EdtText = (EditText) findViewById(R.id.password);
ButtonClick = (Button) findViewById(R.id.devam);
ButtonClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent inte = new Intent(PasswordConfirmationActivity.this,
IndexActivity.class);
control = true;
inte.putExtra("confirmation", control);
startActivity(inte);
finish();
}
});
}
这是我得到NullPointerException的代码
public class PasswordConfirmationActivity extends Activity {
Button ButtonClick;
EditText EdtText;
Boolean control =new Boolean(false);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password_confirmation);
EdtText = (EditText) findViewById(R.id.password);
ButtonClick = (Button) findViewById(R.id.devam);
ButtonClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent inte = new Intent(PasswordConfirmationActivity.this,
IndexActivity.class);
control = true;
inte.putExtra("confirmation", control);
startActivity(inte);
finish();
}
});
}
我用意图来启动
IndexActivity.class
当它试图启动它时,给我nullpointerexception
以下是索引活动:
public class IndexActivity extends Activity {
TextView txt1, txt2, txt3;
Button ButtonClick, ButtonClick2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GeneralConstans GC = new GeneralConstans();
txt1 = (TextView) findViewById(R.id.textView1);
txt2 = (TextView) findViewById(R.id.textView2);
txt3 = (TextView) findViewById(R.id.textView5);
ButtonClick = (Button) findViewById(R.id.order);
ButtonClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 0);
}
});
ButtonClick2 = (Button) findViewById(R.id.login);
ButtonClick2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent inte = new Intent(IndexActivity.this,
LoginActivity.class);
startActivity(inte);
}
});
ButtonClick2.setVisibility(1);
在这一行中,我从其他活动中获取参数“确认”
我有一个类似的问题,并且在找到解决方案后没有深入研究,但是尝试向参数添加名称空间。实际值并不重要,但我猜Android会以不同的方式对待“原始”键值以防止冲突
final String PARCEL_CONFIRM="this.is.a.namespace.confirmation";
然后使用此选项与意图进行交互。NPE会告诉您问题发生的确切位置(文件名、行号)。您可以标记获得NPE的行号吗?您正在获取启动活动的意图,然后您正在以该意图启动另一个活动,对于onActivityResult的
:交换机的逻辑不应基于reqCode,而应基于resultCode。同时发布日志。
final String PARCEL_CONFIRM="this.is.a.namespace.confirmation";