我是编程和 Android 新手。我已经构建了一个用于数钱的小应用程序。目前它只是一个大文件,其中包含许多方法。所以我想我会整理一下,然后去上课。我有这个 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 崩溃。我一直在寻找一段时间,它给我留下了比我开始时更多的问题。似乎您不能在主要活动之外使用 findViewById,因为您尚未设置 setContentView()。我不会这样做,因为它不是主要活动。我还尝试将一个简单的 toast 放在一个单独的类中并调用它,但这也会崩溃。所以我只是做得不对。
有人愿意给我一些关于如何在 Android 中正确使用类的指示吗?
干杯,
大安