Ich bin ein Neuling in der Programmierung und vor einem Problem, das ich für mich selbst nicht lösen kann. Was ich tun möchte, ist das Füllen/Hinzufügen von etwas zu einem ListView in der MainActivity mit einem String, den ich in einen EditText in einer zweiten Aktivität eingefügt habe. Jedes Mal, wenn ich auf den Button auf Aktivität 2 klicke, funktioniert meine App nicht mehr. Ich weiß nicht, was ich falsch mache, deshalb wird Hilfe sehr geschätzt. Ich werde meinen Code schreiben:ListView mit Button und setResult
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();
}
}
}
}
Dachte mir in Activity_2 zu werfen, einen Namen eingeben:
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 AUSNAHME: Hauptprozess: com.example.robert.againagainagaian, PID: 3857 java.lang.RuntimeException: Fehler beim Liefern des Ergebnisses ResultInfo {who = null, request = 1, result = -1, data = null} zu Aktivität {com.example.robert.againagainagaian/com.example.robert.againagainagaian.MainActivity}: java.lang .NullPointerException: Versuch virtuelle Methode bei android.app.ActivityThread.deliverResults 'java.lang.String android.content.Intent.getStringExtra (java.lang.String)' auf null Objektverweis aufgerufen (ActivityThread.java : 4053) bei android.app.ActivityThread.handleSendResult (ActivityThread.java:4096) bei android.app.ActivityThread.-wrap20 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java: 1516) bei android.os.Handler.dis patchMessage (Handler.java:102) um android.os.Looper.loop (Looper.java:154) um android.app.ActivityThread.main (ActivityThread.java:6077) um java.lang.reflect.Method. Rufen Sie (Native Methode) um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java: 866) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:756) verursacht durch : java.lang.NullPointerException: Versuch com.example.robert.againagainagaian virtuelle Methode 'java.lang.String android.content.Intent.getStringExtra (java.lang.String)' auf null Objektverweis aufgerufen .MainActivity.onActivityResult (MainActivity.java:55) bei android.app.Activity.dispatchActivityResult (Activity.java:6915) bei android.app.ActivityThread.deliverResults (ActivityThread.java:4049) bei android.app.ActivityThread.handleSendResult (ActivityThread.java:4096) bei android.app.ActivityThread.-wrap20 (ActivityThread .java) um android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1516) bei android.os.Handler.dispatchMessage (Handler.java:102) um android.os.Looper.loop (Looper.java : 154) unter android.app.ActivityThread.main (ActivityThread.java:6077) um java.lang.reflect.Method.invoke (Native Methode) um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 756)
zeigen logcat bitte. –
'if (eventname ==" ")' wrong..es sollte 'if (eventname.equals (" "))' –
BEARBEITEN: Ignoriere einfach den EditText in MainActivity, es ist etwas anderes, was ich als nächstes machen möchte. Danke – ForeverNewbie