Nano Hash - криптовалюты, майнинг, программирование

Android, просто просмотрите вопрос о сбросе просмотра

У меня есть кнопка в моей деятельности, когда вы нажимаете кнопку, оператор if запускается против ее текстовой метки;

if(BTN_1.getText()=="firsttext"){
    //do some stuff, then...
    BTN_1.setText("secondtext");
}else if(BTN_1.getText()=="secondtext"){
    //do other stuff, then...
    BTN_1.setText("firsttext");
}

Во-первых, если я нажму кнопку «Домой» и вернусь на рабочий стол, а затем вернусь к моему приложению, представление перезагрузится; если я нажму кнопку и оставлю ее в состоянии, когда текст кнопки "второй текст", когда я вернусь в свое приложение, он скажет "первый текст", как я могу остановить представление моего приложения, обновляющего себя, как это?

Во-вторых, в моем макете XML я определил текст кнопок; android:text="firsttext" Но на самом деле это не будет соответствовать моему оператору if выше, в onCreate этого приложения у меня есть: BTN_CONNECT.setText("Connect"); Но визуально текст кнопки точно такой же, почему не совпадет?

Спасибо за чтение :)

06.01.2011

Ответы:


1

С чего начать?

  • Сравнение строк необходимо выполнять с equals(), а не ==.
  • Строка сравнивается, чтобы проверить, что ваше состояние плохо для начала. Используйте целое число/перечисление, чтобы увидеть, как управлять своим состоянием.
  • В зависимости от того, как долго вы хотите, чтобы ваше состояние сохранялось, вы можете сделать это либо в Activity.saveInstanceState() (чтобы оно сохранялось, если вы измените ориентацию), либо в SharedPreferences, если вы хотите, чтобы оно сохранялось навсегда.
  • Не используйте жестко закодированные строки для android:text, используйте ресурсы, чтобы их можно было перевести.
  • Я не понимаю вашего последнего пункта.
06.01.2011
  • +1 за С чего начать. Вот так я тоже собирался начать свой ответ. 06.01.2011
  • Спасибо за ответ, ЭбоМайк. Я перешел на использование equals(), спасибо, что указали на это, и я также перешел на использование строковых ресурсов вместо жестко закодированных значений. После быстрого Google я вижу ошибку, которую я сделал здесь, так что еще раз спасибо за это. У меня есть проблема; Я определил свой android:text как @string/mystr. В моем основном классе я могу объявить строку, скажем, strMine, и использовать ее; strMine = getString(R.string.mystr); но если я изменю strMine, это не отразится на моей кнопке, для которой android:text установлен на @string/mystr, как я могу связать эти значения? 06.01.2011
  • Забыл сказать, mystr ЯВЛЯЕТСЯ объявленным строковым ресурсом, я этого не пропустил :) 06.01.2011
  • Если вы скажете button.setText(R.string.mystr), строка кнопки должна измениться на эту строку, если только в вашем коде нет чего-то странного. 06.01.2011
  • Извините, я не думаю, что я был ясен. Моя кнопка в layout.xml имеет android:text=@string/mystr. Во время моего приложения, как я могу обновить mystr, чтобы обновить текст моей кнопки? 07.01.2011
  • Вы не меняете строковые ресурсы. Они доступны только для чтения. Вы меняете кнопку, чтобы использовать другой строковый ресурс. 07.01.2011
  • @javano: у вас неправильное представление о файлах ресурсов. Такие файлы, как strings.xml (и содержащиеся в нем строки), предназначены для редактирования только во время разработки, а не во время выполнения. Когда вы используете android:text:@string/myStr в файле макета, вы просто устанавливаете начальный (по умолчанию) текст для кнопки. Если вы используете что-то вроде button.setText(strMine) в своем коде, то вы меняете strMine, текст кнопки не обновляется автоматически... вам нужно снова вызвать button.setText(strMine). Упс, EboMike добрался до него, пока я печатал. 07.01.2011
  • Да, но ты был намного красноречивее. Спасибо, Сквонкс :) 07.01.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..