Men Android App Dev-ning boshlang'ichiman: Men har doim yopiq kuchlarni olaman

So'nggi paytlarda Android ilovalarini qanday rivojlantirishni o'rganishga kirishdim. Men Java-da juda malakaliman, lekin hali ham Android va XML-larni osib olishga harakat qilyapman.

Shunday qilib, oldindan yordam uchun rahmat: D!

Hozir men faqat EditText widget va tugma bo'lgan dasturni yaratishga harakat qilaman. Siz allaqachon mening kodim Button uchun OnClickListener yaratadi va OnClick usulini belgilaydi. Nima uchun kuch yopilishining hech qanday tasavvurga ega emasman. Men oldin bir necha kichik dasturlar bilan (asosan tugmalarni sinab ko'rish bilan) tajribamni boshdan kechirdim, va men bu muammoni bir necha bor ko'rganman, shuning uchun bu kodning o'ziga xosligi yo'q, deb o'ylamayman.

Kodi:

public class AdditionActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Toast.makeText(AdditionActivity.this, "Welcome to Addition Helper!", Toast.LENGTH_SHORT).show();

        final EditText answerBox = (EditText) findViewById(R.id.answerBox);
        final Button button = (Button) findViewById(R.id.button);
        final TextView problem = (TextView) findViewById(R.id.problem);
//        
        //problem.setText("5+4");

        button.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v)
            {
                Toast.makeText(AdditionActivity.this, "Started", Toast.LENGTH_SHORT);
                String temp = problem.getText().subSequence(0, 1).toString();
                int first = Integer.parseInt(temp);
                temp = problem.getText().subSequence(2,3).toString();
                int second = Integer.parseInt(temp);
                int answer = first + second;
                if(Integer.parseInt(answerBox.getText().toString()) == answer) 
                    Toast.makeText(AdditionActivity.this, "Correct!!!!!", Toast.LENGTH_SHORT);
                else
                    Toast.makeText(AdditionActivity.this, "WRONG", Toast.LENGTH_SHORT);
            }
        });
    }
}

Ya'ni, agar kimdir boshlang'ichning tez-tez kuchga kirishi mumkinligini bilsa yoki mening kodim bilan noto'g'ri ish qilsam, bu katta bo'ladi! Mening laynerim xml faylida barcha menda EditText widget, TextView widget va tugma mavjud.

Vaqtingiz uchun yana bir rahmat, men buni juda qadrlayman.

0
Logcat chiqishi kuchni nima yaqinlashayotgani haqida sizga ma'lumot beradi. Tutilishda DDMS-ni bosing va keyin logcat-ni izlang.
qo'shib qo'ydi muallif Steve Blackwell, manba
Qaysi vaqt yaqinlashadi? UIni ko'rishdan oldin yoki tugmani bosganingizda yoki boshqa biror narsani ko'rsangiz bo'ladimi?
qo'shib qo'ydi muallif confusedKid, manba

1 javoblar

Sizning senaristingiz EditText-da 1 + 1 shaklida yozilsa, tugmasini bosing va TextView-da ko'rsatilgan natijani oling. shuning uchun,

Bu noto'g'ri: EditText answerBox va TextView muammosi Bu to'g'ri: EditText muammo va TextView javob qutisi

Kuch-quvvatni yopish, asosan, bu qatordan NullPointerException yoki ArrayIndexOutofBoundException tufayli sodir bo'ladi:

String temp = problem.getText().subSequence(0, 1).toString();
0
qo'shib qo'ydi
Muammo matnli tasvirni dastlab, xml yoki dastur orqali qanday qilib to'ldirasiz? Problem.setText ("5 + 4") ni tushuntirib beraman; Agar matnli ko'rinishda hech narsa yo'q bo'lsa, problem.getText() bo'sh mag'lubiyatga qaytarsa, ArrayIndexOutofBoubdException bo'lganda, substring (0,1) bo'sh bir mag'lubiyatga ega bo'lasiz.
qo'shib qo'ydi muallif yorkw, manba
Kimdir allaqachon taklif qilganidek, agar siz Eclipse dan foydalansangiz, logcat har narsani tushunishi mumkin, Oyna -> Prespective-ni ochish - DDMS-ni bosing.
qo'shib qo'ydi muallif yorkw, manba
Yo'q, siz tasodifiy qo'shimcha savolni olishingiz kerak, va javobni kiritganingizdan so'ng siz kiritgan raqam to'g'ri yoki yo'qligini sizga aytadi. NullPointerException yoki ArrayIndexOutofBoundException haqida batafsil ma'lumot bera olasizmi? Rahmat
qo'shib qo'ydi muallif bhsu, manba
Resurslarda men mag'lubiyatga uchrayman va bu mag'lubiyatni TextView muammosiga qo'ydim. Foydalanuvchi javobni kiritganidan so'ng matnni TextView-ga o'zgartiraman. Xo'sh, xato qilish to'g'ri emasmi?
qo'shib qo'ydi muallif bhsu, manba