Использование примитивных типов данных в другом классе и файла res / menu / .xml - PullRequest
1 голос
/ 06 декабря 2011

Я очень новичок в Java.Я думал, что у меня все хорошо, но теперь, так сказать, попал в кирпичную стену.

Идея в том, что я использую 'кнопку домой' '_menu', чтобы пользователь мог выбрать один из 26 форматов.Формат, который они выбирают, имеет 3 переменные.Эти 3 переменные затем используются в первом представлении xml вместе с 2 пользовательскими вводами для вычисления другой переменной.Затем эта переменная используется во втором представлении xml вместе с третьим пользовательским вводом для вычисления окончательного ответа.

Я создал 26 вариантов, и если, например, я выберу вариант 5, на экране эмулятораЯ вижу все правильные значения, связанные с этим выбором.Я не думаю, что эти значения хранятся где-либо.Я говорю это потому, что если я выйду из этого представления и вернусь обратно в него, он не показывает, как в моем примере, вариант 5. Он показывает его начальное состояние, как будто я входил в него в первый раз.Я предполагаю, что это как-то связано с запуском этого действия с самого начала, но есть ли что-нибудь вокруг этого.Или действительно, с чего начать.

Мой второй вопрос касается целочисленных переменных, которые я создал из этого выбора.Мне нужно передать их в другой файл Java для первого набора расчетов.Я пытался передать переменные / данные с помощью 'new intent putExtra', но не смог заставить его работать.Но я не думаю, что смогу использовать это в любом случае, так как я не хочу запускать второе представление непосредственно из представления res / menu / .xml.

Не уверен, имеет ли это смысл для кого-либо.Может ли кто-нибудь помочь направить меня в правильном направлении?

1 Ответ

0 голосов
/ 24 декабря 2011

Я не совсем понимаю ваш первый вопрос, но похоже, что вы запускаете новое действие, и когда вы выходите и возвращаетесь к нему, все сбрасывается. Если вы запускаете новое действие после выбора параметров из кнопки меню вашего телефона, вы должны реализовать метод, который сохраняет данные в общих настройках основного действия. Этот метод следует вызывать для операций onPause (), onDestroyed () или onStop (). Вы также можете добавить метод в onResume (), где действие проверяет, есть ли какие-либо данные, сохраненные в общих настройках, и, если да, внесите необходимые изменения.

activity life cycle

Что касается вашего второго вопроса ... Я тоже вроде не понимаю. новые намерения и putextra используются, когда вы начинаете новое действие и хотите передать в него данные. Представления не «запускаются», они только раздуваются и выводятся на экран в любое время. Однажды я сделал приложение, в котором у меня было все в одном упражнении и все время использовал метод setContentView (). В конце концов, это просто все усложнило. Проще быть проще и начинать действия. Вот пример некоторых переменных, передаваемых в новое действие: На моей основной деятельности (FirstActivity) у меня есть: (когда нажата кнопка newActivityButton)

case R.id.newActivityButton:
            Intent mIntent = new     Intent(FirstActivity.this,SecondActivity.class);
        String[] luckyNumbers = {
                luckyNumber[0].getText().toString(),
                luckyNumber[1].getText().toString(),
                luckyNumber[2].getText().toString(),
                luckyNumber[3].getText().toString(),
                luckyNumber[4].getText().toString(),
                luckyNumber[5].getText().toString()};
        mIntent.putExtra("luckyNumbers", luckyNumbers);
        mIntent.putExtra("message", messageField.getText().toString());
        FirstActivity.this.startActivity(mIntent);
        break;

luckyNumbers [] - массив текстовых просмотров.

Тогда на моем NewActivity onCreate () у меня есть:

message = getIntent().getExtras().getString("message");
Log.i("TAG", message);
luckyNumbers = getIntent().getExtras().getStringArray("luckyNumbers");
cv.setLuckyNumbers(this.luckyNumbers);
cv.setMessage(this.message);

где cv - просто пользовательское представление, которое я создал своими собственными методами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...