I'm a newbie in programming and facing a problem I cannot solve for myself. What I want to do, is filling/adding something to a ListView in the MainActivity with a String I put into an EditText in a SECOND Activity. Every time I click the Button on Activity 2, my App stops working. I don't know what I'm doing wrong, so help is much appreciated. I'll post my code:
MainActivity:
public class MainActivity extends AppCompatActivity {
EditText et;
ListView lv;
ArrayList<String> arrayList;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.et);
lv = (ListView) findViewById(R.id.lv);
arrayList = new ArrayList<String>();
adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_expandable_list_item_1, arrayList);
lv.setAdapter(adapter);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent1 = new Intent(MainActivity.this , Activity_2.class);
startActivityForResult(intent1, 1);//Throws me into Act2
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent intentback){
super.onActivityResult(requestCode, resultCode, intentback);
if ( requestCode == 1){
if(resultCode == RESULT_OK){
String resultback = intentback.getStringExtra("nameEvent");
arrayList.add(intentback.getStringExtra("nameEvent"));
adapter.notifyDataSetChanged();
}
}
}
}
Thought to throw me into Activity_2, to input a name:
public class Activity_2 extends AppCompatActivity {
EditText etact;
Button addbtn;
String eventname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2_layout);
addbtn = (Button) findViewById(R.id.addbtn);
etact = (EditText) findViewById(R.id.etact);
if ( etact.getText().toString()!= ""){
eventname = etact.getText().toString();
}
addbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (eventname == ""){
Toast.makeText(Activity_2.this,
"Make Input first", Toast.LENGTH_LONG).show();
}
else {
Intent intentback = new Intent(Activity_2.this, MainActivity.class);
intentback.putExtra("nameEvent", eventname);
setResult(RESULT_OK);
finish();
}
}
});
}
}
EDIT: Logcat
FATAL EXCEPTION: main Process: com.example.robert.againagainagaian, PID: 3857 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.example.robert.againagainagaian/com.example.robert.againagainagaian.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference at android.app.ActivityThread.deliverResults(ActivityThread.java:4053) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference at com.example.robert.againagainagaian.MainActivity.onActivityResult(MainActivity.java:55) at android.app.Activity.dispatchActivityResult(Activity.java:6915) at android.app.ActivityThread.deliverResults(ActivityThread.java:4049) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)