I was trying to learn by following the lab here https://sites.google.com/site/androidcoursearchive/labs/lab-1
Here’s the code
NameGetter.java
public class NameGetter extends Activity implements OnClickListener {
EditText name;
Button submit;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.name_getter);
name = (EditText) this.findViewById(R.id.editText1);
submit = (Button) this.findViewById(R.id.button1);
submit.setOnClickListener(this);
}
public void onClick(View v) {
String userName = name.getText().toString();
Intent submitIntent = new Intent(NameGetter.this, HelloWorld.class);
submitIntent.putExtra("username", userName);
this.startActivity(submitIntent);
}
}
HelloWorld.java
public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = (TextView) this.findViewById(R.id.textViewHello);
Bundle name = this.getIntent().getExtras();
if(name != null) {
String nameEntered = name.getString("username");
if(nameEntered != null) {
tv.setText(nameEntered);
} else {
tv.setText("nameEntered is null");
}
} else {
tv.setText("name is null");
}
}
}
I can enter the text into the EditText box,and when I press submit button I get a forced close. LogCat says as following:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackagerhello.com/com.mypackagerhello.com.HelloWorld}: java.lang.NullPointerException`
EDIT: Thank you all! It was the this.setContentView(R.layout.main); line that was missing from HelloWorld.java.
Notice that in your NameGetter Activity you set the content view like so:
but in your HelloWorld activity you haven’t done so. Add that line right after super.onCreate and before findViewById. Good luck!