Завершающая операция сначала очищает EditTexts и только потом делает то, что должна - PullRequest
0 голосов
/ 27 апреля 2011

это мой первый пост здесь. У меня проблема с управлением деятельностью. У меня есть основной вид деятельности, который запускает другие действия, содержащие некоторые EditTexts. Вот код для запуска:

        Intent myIntent = new Intent(ActualClass.this, NextClass.class);
        startActivity(myIntent);

У меня есть несколько EditTexts для недавно запущенного действия и несколько кнопок. Одна из кнопок возвращает меня к основной деятельности. На своем OnTouchEvent я запускаю простые finish (); Все кажется простым и должно работать просто отлично, но когда я нажимаю кнопку, которая должна вернуть меня к моей основной деятельности, он сначала очищает мои EditTexts. Когда я нажимаю на него во второй раз, он, наконец, возвращает меня к моей основной деятельности. Что я должен сделать, чтобы предотвратить очистку EditTexts и вернуться к моей основной деятельности после первого щелчка? Буду очень признателен за вашу помощь.

Извините, ребята, я добавляю больше кода. Итак, вот слушатель, который запускает второе действие, то есть с EditTexts:

public boolean onTouch(View v, MotionEvent me) {
        switch(v.getId()){

        case R.id.buttonForward:
            Intent myIntent = new Intent(ActualClass.this, NextClass.class);
            startActivity(myIntent);
            break;

        default:
            break;

        }
        return false;
    }

А на втором занятии, где, кажется, возникает моя проблема, слушатель на кнопке выглядит так:

   buttonBack.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            finish();
            return false;
        }
    });

И проблема в том, что когда я впервые нажимаю кнопку «Назад» во втором упражнении, это не возвращает меня к моему основному занятию - оно очищает все EditTexts в задании и устанавливает фокус на первом элементе. Когда я нажимаю кнопку во второй раз, она, наконец, возвращает меня к основной деятельности.

Я предоставляю полный код класса NextClass, класса с EditTexts.

public class NextClass extends Activity implements OnTouchListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE); 
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.nextclasslayout);

        final EditText firstEditText = (EditText) findViewById(R.id.firstEditTextName);
        final EditText secondEditText = (EditText) findViewById(R.id.secondEditTextName);

        ImageButton buttonBack = (ImageButton) findViewById(R.id.imageButtonBack);


        buttonBack.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {
                finish();
                return true;
            }
        });

    }    

    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {

        return false;
    }

}

1 Ответ

1 голос
/ 27 апреля 2011

Я думаю, что ваши EditText не очищаются.Вы просто запускаете два действия NextClass, потому что метод onTouch() вызывается дважды: один раз для ACTION_DOWN и один раз для Action_UP.И когда вы закончите самый верхний, появится следующий.Если вы используете действие OnClickListener в ActualClass для обработки событий нажатия кнопки, все должно быть в порядке.

...