私は初心者プログラマーであり、Eclipseを使用してAndroidコーディングを学ぼうとしています。StackOverflowを使用するのはこれが初めてです。
チュートリアルのためだけに、簡単な動物百科事典を作りたいと思います。
そのため、私のホームクラスには、「犬」、「猫」、「鳥」などのボタンがあります。ボタンをクリックすると、同じレイアウトになりますが、もちろん内容が異なります。
そこで、画像の下に配置するテキスト(「ブルドッグ」や「ハスキー」など)
ArrayList<Integer>
を格納R.drawable.xxx
および格納するためのAnimalDataという名前のクラスを作成しました 。ArrayList<String>
次に、ChangeContentという名前のクラスを作成して、これらすべての描画可能テキストとテキストをXMLに設定しました。
しかし、ボタンをクリックするたびに、予期せず停止したエラーが発生します
以下は短縮されたホームクラスです。「クラッシュメーカー」はここにはありません。を使用して1行あたりのコード行全体をチェックした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は典型的なゲッターセッターなので、そのためのコードはスキップします
コンストラクターの最初の行にsleep()を配置しても効果がないため、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
}
}
長い質問でごめんなさい、私はそれをできるだけ短くしようとしました。皆さんは私がエラーを理解するのを手伝ってくれますか?前に感謝します