私はプログラミングとAndroidが初めてです。お金を数える小さなアプリを作成しました。現時点では、多くのメソッドを含む 1 つの大きなファイルにすぎません。それで、少し整理して、クラスに入れようと思いました。ClearAll クラスに配置したこの clearAll メソッドがあります。
import android.widget.EditText;
import android.widget.TextView;
public class ClearAll extends MainActivity {
public void clearAll() {
// Set EditTexts to ""
((EditText) findViewById(R.id.euro500)).setText("");
((EditText) findViewById(R.id.euro200)).setText("");
((EditText) findViewById(R.id.euro100)).setText("");
((EditText) findViewById(R.id.euro50)).setText("");
((EditText) findViewById(R.id.euro20)).setText("");
((EditText) findViewById(R.id.euro10)).setText("");
((EditText) findViewById(R.id.euro5)).setText("");
((EditText) findViewById(R.id.euro2)).setText("");
((EditText) findViewById(R.id.euro1)).setText("");
((EditText) findViewById(R.id.cent50)).setText("");
((EditText) findViewById(R.id.cent20)).setText("");
((EditText) findViewById(R.id.cent10)).setText("");
((EditText) findViewById(R.id.cent5)).setText("");
((EditText) findViewById(R.id.cent2)).setText("");
((EditText) findViewById(R.id.cent1)).setText("");
// Set TextViews to "0.00"
((TextView) findViewById(R.id.tvEuro500Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro200Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro100Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro50Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro20Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro10Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro5Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro2Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvEuro1Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvCent50Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvCent20Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvCent10Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvCent5Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvCent2Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvCent1Totaal)).setText(R.string.puntjes);
((TextView) findViewById(R.id.tvTotaalBedrag)).setText(R.string.puntjes);
}
}
したがって、私の MainActivity では次のことを行います。
ClearAll clear = new ClearAll();
clear.clearAll();
しかし、それが呼び出されると、findViewById で NullPointerException が発生してアプリがクラッシュします。しばらく探していましたが、始めたときよりも多くの疑問が残りました。setContentView() を設定していないため、メイン アクティビティ以外で findViewById を使用できないようです。それは主な活動ではないので、私はしません。また、単純なトーストを別のクラスに入れて呼び出しようとしましたが、それもクラッシュします。だから私はそれを正しくしていません。
Androidでクラスを正しく使用する方法について、誰かが私にいくつかの指針を喜んで教えてくれますか?
乾杯、
大安