我一直在尝试创建一个可以更新用户配置文件的活动,但是它一直告诉我firstname变量是一个空对象引用,有人可以帮我吗?
_surface.view = u_inverseModelViewTransform[3].xyz;
我的xml部分
public class UpdateUser extends AppCompatActivity {
private EditText lastname;
private EditText firstname;
private EditText phone;
private Button btn_ajouter;
private Button btn_quitter;
Bundle b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
firstname=(EditText) this.findViewById(R.id.firstN1);
lastname=(EditText) this.findViewById(R.id.lastN);
phone= (EditText) this.findViewById(R.id.phonec);
btn_ajouter= (Button) this.findViewById(R.id.btn_ap);
btn_quitter= (Button)this.findViewById(R.id.btn_lea);
Intent i=this.getIntent();
b=i.getExtras();
String a=b.getString("first");
String c=b.getString("last");
String d=b.getString("phon");
firstname.setText(firstname.getText().toString()+" "+a);
lastname.setText(lastname.getText().toString()+" "+c);
phone.setText(phone.getText().toString()+" "+d);
btn_ajouter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Register.data.set(b.getInt("indice"),new Contact(firstname.getText().toString(),lastname.getText().toString(),phone.getText().toString()));
Register.sauvgarger();
Intent i=new Intent(UpdateUser.this,Display.class);
startActivity(i);
try {
finish();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
});
btn_quitter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
finish();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
});
}
}
我的错误日志
1-28 02:39:52.076 9276-9276 / com.example.tcyc E / AndroidRuntime:致命例外:主进程:com.example.tcyc,PID:9276 java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.tcyc / com.example.tcyc.UpdateUser}:java.lang.NullPointerException:尝试在android上的空对象引用上调用虚拟方法“ android.text.Editable android.widget.EditText.getText()” .app.ActivityThread.performLaunchActivity(ActivityThread.java:3319)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)在android.app.ActivityThread.access $ 1100(ActivityThread.java:229)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1821)在android.os.Handler.dispatchMessage(Handler.java:102)在android.os.Looper.loop(Looper.java:148)在android.app.ActivityThread.main(在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230)在java.lang.reflect.Method.invoke(本机方法)处的ActivityThread.java:7406) .os.ZygoteInit.main(ZygoteInit.java:1120)原因:java.lang.NullPointerException:尝试在com的空对象引用上调用虚拟方法'android.text.Editable android.widget.EditText.getText()' .example.tcyc.UpdateUser.onCreate(UpdateUser.java:34)在android.app.Activity.performCreate(Activity.java:6904)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)在android.app。位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)的ActivityThread.performLaunchActivity(ActivityThread.java:3266),位于android.app.ActivityThread $ H的android.app.ActivityThread.access $ 1100(ActivityThread.java:229)。 android.os.Handler.dispatchMessage(Handler.java:102)的handleMessage(ActivityThread.java:1821)android.app.ActivityThread.main(ActivityThread.java)的android.os.Looper.loop(Looper.java:148) :7406),位于java.lang.reflect.Method.invoke(本机方法),位于com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230),位于c om.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
答案 0 :(得分:1)
检查您的activity_add xml, 问题可能是
firstname=(EditText) this.findViewById(*R.id.firstN1*);
EditText ID是是是 firstN1吗?
答案 1 :(得分:0)
setContentView(R.layout.activity_add);
这是您要使用的布局。因此,请确保它具有您要在UpdateUser
活动中访问的所有字段。因为实际上,该布局似乎是用于名为Add
的活动的。