Я новичок в программировании и Android. Я построил небольшое приложение для подсчета денег. Это всего лишь один большой файл на данный момент с использованием многих методов. Так что я подумал, что я бы немного его организовал и пошел и поместил вещи в классы. У меня есть этот метод CLEARALL, который я наношу в классе CLEARALL:Как правильно использовать классы в Android
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();
Но когда это называется приложение падает с NullPointerException на findViewById. Я искал какое-то время, и это оставило мне больше вопросов, чем когда я начал. Кажется, что вы не можете использовать findViewById ouside для основного действия, потому что вы не установили setContentView(). Который я не буду делать, так как это не основной вид деятельности. Я также попытался поставить простой тост в отдельный класс и назвал это, но это тоже сработало. Так что я просто не делаю это правильно.
Может кто-нибудь пожелает дать мне несколько указаний о том, как правильно использовать классы в Android?
Приветствия,
Даан
Спасибо, человек, я вернусь к тому, как мой код был и начал экспериментировать с другими методами, помещая их в классы. Я уже думал о создании цикла для метода clearAll. Большое спасибо за пример! – stofstik