P
Popcorn2101
Neues Mitglied
- 0
Hey, ich hab ein Problem und zwar soll man bei der App Namen in einem EditText eingeben und die dann in einer neuen Activity in einer ListView ausgeben. Nur ist das Problem, dass die App wenn ich auf die neue Activity wechsele (vorher hatte das schon funtioniert) abstürtzt. Ich konnte es schon so weit eingrenzen, dass es irgendwas mit dem ArrayAdapter zutun haben muss, denn wenn ich den raus nehme funktiert es so weit.
Das ist die MainActivity Klasse:
public class MainActivity extends Activity implements View.OnClickListener {
Button sprache;
Button bestaetigen;
Button zuruecksetzen;
Button fertig;
EditText nachname;
int a;
static ArrayList<String> namensliste;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
a = 0;
sprache = (Button) findViewById(R.id.sprache);
sprache.setOnClickListener(this);
bestaetigen = (Button) findViewById(R.id.bestaetigen);
bestaetigen.setOnClickListener(this);
zuruecksetzen = (Button) findViewById(R.id.zuruecksetzen);
zuruecksetzen.setOnClickListener(this);
fertig = (Button) findViewById(R.id.fertig);
fertig.setOnClickListener(this);
nachname = (EditText) findViewById(R.id.nachname);
namensliste = new ArrayList<>();
}
@override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fertig:
Intent Intent1 = new Intent(this, Ausgabe.class);
Intent1.putStringArrayListExtra("Namensliste",namensliste);
Intent Intent = new Intent(this , Ausgabe.class);
startActivity(Intent);
this.finish();
break;
case R.id.sprache:
break;
//Aktionen Sprache Button
case R.id.bestaetigen:
String getInput = nachname.getText().toString();
if(a >= 5){
Toast.makeText(getBaseContext(), "Es wurden bereits 5 Namen eingegeben!",Toast.LENGTH_LONG).show();
}
else {
if (getInput == null || getInput.trim().equals("")) {
Toast.makeText(getBaseContext(), "Eingabefeld darf nicht leer sein", Toast.LENGTH_LONG).show();
} else {
namensliste.add(getInput);
Toast.makeText(getBaseContext(), "Name eingegeben", Toast.LENGTH_LONG).show();
a++;
}
break;
//Aktionen Bestätigen Button
}
case R.id.zuruecksetzen:
a = 0;
break;
//Aktionen Zurücksetzen Button
}
}
}
und das die Klasse für die Ausgabe:
public class Ausgabe extends Activity implements View.OnClickListener {
Button zurueck;
ListView liste1;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ausgabe);
zurueck = (Button) findViewById(R.id.zuruek);
zurueck.setOnClickListener((View.OnClickListener) this);
liste1 = (ListView) findViewById(R.id.liste1);
List<String> namensliste = new ArrayList<String>();
namensliste = (ArrayList<String>
getIntent().getSerializableExtra("Namensliste");
final ArrayAdapter <String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,namensliste);
liste1.setAdapter(adapter);
}
//Zurück-Button
@override
public void onClick(View view) {
Intent Intent = new Intent(this , MainActivity.class);
startActivity(Intent);
this.finish();
}
//Geh zur MainActivity
}
PS: bin noch sehr unerfahren in Android Studio und Java allgemein. Könnt ruhig alle Fehler anmarkern.
Das ist die MainActivity Klasse:
public class MainActivity extends Activity implements View.OnClickListener {
Button sprache;
Button bestaetigen;
Button zuruecksetzen;
Button fertig;
EditText nachname;
int a;
static ArrayList<String> namensliste;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
a = 0;
sprache = (Button) findViewById(R.id.sprache);
sprache.setOnClickListener(this);
bestaetigen = (Button) findViewById(R.id.bestaetigen);
bestaetigen.setOnClickListener(this);
zuruecksetzen = (Button) findViewById(R.id.zuruecksetzen);
zuruecksetzen.setOnClickListener(this);
fertig = (Button) findViewById(R.id.fertig);
fertig.setOnClickListener(this);
nachname = (EditText) findViewById(R.id.nachname);
namensliste = new ArrayList<>();
}
@override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fertig:
Intent Intent1 = new Intent(this, Ausgabe.class);
Intent1.putStringArrayListExtra("Namensliste",namensliste);
Intent Intent = new Intent(this , Ausgabe.class);
startActivity(Intent);
this.finish();
break;
case R.id.sprache:
break;
//Aktionen Sprache Button
case R.id.bestaetigen:
String getInput = nachname.getText().toString();
if(a >= 5){
Toast.makeText(getBaseContext(), "Es wurden bereits 5 Namen eingegeben!",Toast.LENGTH_LONG).show();
}
else {
if (getInput == null || getInput.trim().equals("")) {
Toast.makeText(getBaseContext(), "Eingabefeld darf nicht leer sein", Toast.LENGTH_LONG).show();
} else {
namensliste.add(getInput);
Toast.makeText(getBaseContext(), "Name eingegeben", Toast.LENGTH_LONG).show();
a++;
}
break;
//Aktionen Bestätigen Button
}
case R.id.zuruecksetzen:
a = 0;
break;
//Aktionen Zurücksetzen Button
}
}
}
und das die Klasse für die Ausgabe:
public class Ausgabe extends Activity implements View.OnClickListener {
Button zurueck;
ListView liste1;
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ausgabe);
zurueck = (Button) findViewById(R.id.zuruek);
zurueck.setOnClickListener((View.OnClickListener) this);
liste1 = (ListView) findViewById(R.id.liste1);
List<String> namensliste = new ArrayList<String>();
namensliste = (ArrayList<String>
final ArrayAdapter <String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,namensliste);
liste1.setAdapter(adapter);
}
//Zurück-Button
@override
public void onClick(View view) {
Intent Intent = new Intent(this , MainActivity.class);
startActivity(Intent);
this.finish();
}
//Geh zur MainActivity
}
PS: bin noch sehr unerfahren in Android Studio und Java allgemein. Könnt ruhig alle Fehler anmarkern.