Ich bin ein Anfänger Programmierer und ich versuche, Android-Codierung mit Eclipse zu lernen. Dies ist mein erstes Mal mit StackOverflow.Android ArrayList, unerwartet gestoppt
Nur für Tutorialzwecke möchte ich eine einfache Animal Encyclopedia machen.
Also in meiner Heimat Klasse gibt es einige Tasten: "Hund", "Katze", "Vogel", etc. Wenn ich den Knopf klicke, bringt es mich zum gleichen Layout aber natürlich mit anderen Inhalt.
Also habe ich eine Klasse namens AnimalData, dass die
ArrayList<Integer>
hältR.drawable.xxx
zu speichern undArrayList<String>
den Text zu speichern, die ich unter dem Bild gesetzt wird (wie „Bulldog“ oder „Husky“)Dann habe ich eine Klasse namens ChangeContent all jene ziehbar und Text in die XML zu setzen
Aber immer, wenn ich auf die Schaltfläche klicken, kommt es zu Gestoppt Fehler unerwartet
Unten die verkürzte Startseite Klasse, Der "Crash-maker" ist hier nicht. Ich habe die gesamte Codezeile pro Zeile mit Thread.sleep(2000)
überprüft, wenn also meine App vor 2 Sekunden abstürzt, liegt der Fehler vor dem sleep() Code und umgekehrt.
public class Home extends Activity implements OnClickListener{
Button dog, cat, bird;
AnimalData ad;
ChangeContent cc;
private ArrayList<Integer> drawable;
private ArrayList<String> title;
public Home(){
ad = new AnimalData();
cc = new ChangeContent(ad);
drawable = new ArrayList<Integer>();
title = new ArrayList<String>()
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
//set the findViewById for all the buttons
//set onClickListener() to all the buttons
}
public void onClick(View v) {
switch (v.getId()){
case R.id.bDog:
drawable.add(R.drawable.xxx);
drawable.add(R.drawable.yyy);
title.add("Bulldog");
title.add("Husky");
break;
case R.id.Cat:
//same
break;
case R.id.bBird:
//same
break;
}
ad.setDrawable(drawable);
ad.setTitle(title);
Intent i = new Intent("animal.ChangeContent"); //from Manifest
startActivity(i);
}
}
Die AnimalData ist nur ein typischer Getter Setter, also werde ich überspringen nur den Code für das
Der Fehler rechts ist nach ChangeContent gestartet, denn selbst wenn ich den Schlaf versetzt() auf der ersten Konstruktorlinie hat keine Auswirkung.
public class ChangeContent extends Activity {
TextView title1, title2;
ImageView pic1, pic2;
private ArrayList<Integer> drawable;
private ArrayList<String> title;
public ChangeContent(AnimalData data){
drawable = new ArrayList<Integer>();
title = new ArrayList<String>();
drawable = data.getDrawable();
title = data.getTitle();
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.animal_info);
//findViewById for the TextView and ImageView
//setText() for TextView and setImageResource() for ImageView
}
}
Sorry für die lange Frage, habe ich versucht, es so kurz wie möglich zu machen Könnt ihr mir helfen, den Fehler herauszufinden? Vielen Dank vor
Beitrag die 'logcat' Fehlermeldung, damit wir Ihnen helfen können :) –