Я пачатковец у Android App Dev: Я атрымліваю сілу зачыніць ўвесь час

Я нядаўна толькі пачаў вывучаць, як развіваць АНДРОІД прыкладання. Я з'яўляюся досыць дасведчаным у Java, але я ўсё яшчэ спрабую атрымаць навык Android і xml харчавання.

Так, дзякуй за дапамогу загадзя: D!

Прама цяпер, я проста спрабую стварыць прыкладанне, якое мае віджэт EditText і кнопку. У цяперашні час усё мой код робіць гэта стварыць OnClickListener для кнопкі, і вызначыць метад OnClick. Я паняцця не маю, чаму гэта высілак закрыцця. Я эксперыментаваў з некалькімі невялікімі праграмамі да (у асноўным эксперыментаваць з кнопкамі), і я таксама меў гэтую праблему некалькі разоў, так што я не думаю, што з'яўляецца унікальным для гэтага кода.

Вось код:

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

Так што калі хто-небудзь ведае, чаму пачатковец можа атрымліваць частыя сілы закрывае або, калі я раблю нешта не так з маім кодам, гэта было б выдатна! У маім файле макета XML, усё, што ёсць віджэт EditText, то TextView віджэт і кнопка.

Яшчэ раз дзякуй за ваш час, я сапраўды цаню гэта.

0
Выхад LogCat скажа вам, што выклікае прымусовае закрыццё. Націсніце на DDMS ў заняпадзе, а затым паглядзець на ўкладцы LogCat.
дададзена аўтар Steve Blackwell, крыніца
Калі яна прымусова закрыць? Перад тым, як можна ўбачыць інтэрфейс, або пры націску на кнопку, ці нешта яшчэ?
дададзена аўтар confusedKid, крыніца

1 адказы

Я думаю, што ваш сцэнар ўвесці 1 + 1 у EditText, націсніце кнопку і атрымаць вынік, паказаны ў TextView. такім чынам,

Гэта няправільна: EditText answerBox і TextView праблема
Гэта правільна: праблема EditText і TextView answerBox

сіла блізка ў асноўным з-за NullPointerException або ArrayIndexOutofBoundException ад гэтай лініі:

String temp = problem.getText().subSequence(0, 1).toString();
0
дададзена
Як вы засяліць праблемы TextView першапачаткова, Via xml або праграмы? Я бачу, вы закаментаваць problem.setText ( "5 + 4"); калі TextView не мае нічога, то problem.getText() вяртае пусты радок, вы атрымаеце ArrayIndexOutofBoubdException калі subsquence (0,1) а пустая радок.
дададзена аўтар yorkw, крыніца
Як хтосьці ўжо прапанаваў, калі вы карыстаецеся Eclipse, LogCat можа сказаць усё, націсніце Window -> Open Prespective -> DDMS.
дададзена аўтар yorkw, крыніца
Не, вы павінны атрымаць выпадковае складанне пытанне, а затым пакласці ў адказ, гэта будзе паведамляць вам, калі нумар, які вы паклалі ў правільна. Не маглі б вы расказаць пра NullPointerException або ArrayIndexOutofBoundException? БЛАГОДАРНОСТЬ
дададзена аўтар bhsu, крыніца
У рэсурсах я стварыў радок і я стаўлю гэты радок ў задачы TextView. Пасля таго як карыстальнік увёў адказ, я затым змяніць тэкст у TextView. Такім чынам, не павінна быць права памылкі?
дададзена аўтар bhsu, крыніца