Ben Android App Dev bir başlangıç: Ben her zaman yakın bir güç alıyorum

Yakın zamanda, android uygulamalarını geliştirmeyi öğrendim. Java'da oldukça becerikliyim, ancak hala Android ve xml içeriklerinin asılmasını sağlamaya çalışıyorum.

Öyleyse yardım için şimdiden teşekkürler: D!

Şu anda, sadece bir EditText widget'ına ve bir düğmeye sahip bir uygulama oluşturmaya çalışıyorum. Şu anda, tüm kodlarım, düğme için bir OnClickListener oluşturuyor ve OnClick yöntemini tanımlar. Neden güç kapandığının hiçbir fikri yok. Daha önce birkaç küçük program denedim (temelde düğmelerle denemeler yapıyordum), ve bu problemi de birkaç kez yaşadım, bu yüzden bu kodun benzersiz olduğunu düşünmüyorum.

İşte kod:

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);
            }
        });
    }
}

Öyleyse, yeni başlayanların sık sık neden güç kapandığını ya da kodumda yanlış bir şey yapıyorumsa, bu BÜYÜK olur! Benim düzen xml dosyasında, tüm sahip olduğum EditText widget, TextView widget ve düğme.

Zaman ayırdığınız için tekrar teşekkürler.

0
Logcat'in çıktısı, kuvvete neyin neden olduğunu size söyleyecektir. Tutulmada DDMS'ye tıklayın, ardından logcat sekmesine bakın.
katma yazar Steve Blackwell, kaynak
Ne zaman kapanıyor? Kullanıcı arayüzünü görmeden veya düğmeyi veya başka bir şeyi tıkladığınızda önce?
katma yazar confusedKid, kaynak

1 cevap

Bence senaryonuz EditText'te 1 + 1'de yazıyor, tuşa basın ve TextView'da gösterilen sonucu alın. dolayısıyla,

Bu yanlış: EditText answerBox ve TextView sorunu
Bu doğru: EditText sorunu ve TextView answerBox

Yakın kapanma çoğunlukla bu satırdan NullPointerException veya ArrayIndexOutofBoundException neden olur:

String temp = problem.getText().subSequence(0, 1).toString();
0
katma
İlk olarak xml veya program ile ilgili sorun metnini nasıl doldurursunuz? Görüyorsunuz problem.setText ("5 + 4"); textview öğesinde hiçbir şey yoksa, o zaman problem.getText() boş dizge döndürür, alt dizge (0,1) boş bir dize olduğunda ArrayIndexOutofBoubdException alırsınız.
katma yazar yorkw, kaynak
Birisi daha önce önerdiği gibi, Eclipse kullanıyorsanız, logcat her şeyi söyleyebilir, Pencere -> Open Openpective -> DDMS seçeneğini tıklayın.
katma yazar yorkw, kaynak
Hayır, rastgele bir ekleme sorusu almanız gerekiyor, ve sonra cevabı koyduğunuzda, koyduğunuz sayının doğru olup olmadığını size söyleyecektir. NullPointerException veya ArrayIndexOutofBoundException hakkında ayrıntılı bilgi verebilir misiniz? TEŞEKKÜRLER
katma yazar bhsu, kaynak
Kaynaklarda bir dizi oluşturdum ve bu dizeyi TextView problemine koydum. Kullanıcı bir cevap girdikten sonra, TextView'daki metni değiştiririm. Yani, doğru bir hata olmamalı?
katma yazar bhsu, kaynak