Я начинающий программист, и я пытаюсь изучить кодировку Android с помощью Eclipse. Это мой первый раз, используя StackOverflow.Android ArrayList, неожиданно остановился
Только для учебных целей я хочу сделать простую Энциклопедию животных.
В моем классе «Дом» есть несколько кнопок: «Собака», «Кошка», «Птица» и т. Д. Когда я нажимаю кнопку, она приведет меня к того же макета, но, разумеется, с разными содержание.
Так что я создал класс с именем AnimalData, который держит
ArrayList<Integer>
хранитьR.drawable.xxx
иArrayList<String>
хранить текст, который я буду ставить под картинкой (например, «Бульдог» или «Хаски»)Затем я создал класс с именем ChangeContent, чтобы установить весь этот Drawable и текст в XML
Но всякий раз, когда я нажимаю кнопку, это приводит к Остановились Неожиданно Ошибка
Ниже укороченный Home класс, «грохот-мейкер» не здесь. Я проверил всю строку кода в строке, используя Thread.sleep(2000)
, поэтому, если мое приложение падает до 2 секунд, ошибка перед кодом sleep() и наоборот.
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);
}
}
AnimalData просто типичный геттер сеттер, поэтому я просто пропустить код для этого
Ошибка находится сразу после ChangeContent начала, потому что даже когда я положил сон() на первом линии конструктора, это не имеет никакого эффекта.
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
}
}
Извините за длинный вопрос, я пытался сделать его как можно более коротким Может вы, ребята, помочь мне понять ошибку из? Спасибо до
сообщение сообщение об ошибке «logcat», чтобы мы могли вам помочь :) –