Сохранить состояние RadioButtons в ArrayAdapter класса Type

У меня возникают проблемы, сохраняющие состояние выбранного radobutton , когда пользователь нажимает на задний ключ, а затем возвращается к активности. Мой класс расширяет ListActivity . Ниже приведены методы onCreate и onBackPressed() класса, который создает listview .

@Override
  protected void onCreate(Bundle savedInstanceState) {
   //TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.profile_manager);

    dataInfo = new HandleData(ProfileMaker.this);

    dataInfo.open();

    people = dataInfo.getAllComments();

    userAdapter = new ArrayAdapter(ProfileMaker.this, android.R.layout.simple_list_item_single_choice, people);

    setListAdapter(userAdapter);


    registerForContextMenu(getListView());

    addUser = (Button) findViewById(R.id.buttonAddUser);
    graphUser = (Button) findViewById(R.id.buttonGraph);

    addUser.setOnClickListener(this);
    graphUser.setOnClickListener(this);

    idSharing = getSharedPreferences(idPref, 0);
    nameSharing = getSharedPreferences(namePref, 0);
    ageSharing = getSharedPreferences(agePref, 0);
    weightSharing = getSharedPreferences(weightPref, 0);
    genderSharing = getSharedPreferences(genderPref, 0);

    otherName = getSharedPreferences(nameThere, 0);
    otherAge = getSharedPreferences(ageThere, 0);
    otherWeight = getSharedPreferences(weightThere, 0);
    otherGender = getSharedPreferences(genderThere, 0);
}


    @Override
public void onBackPressed() {
   //TODO Auto-generated method stub
    super.onBackPressed();

    Intent newIntent = new Intent(ProfileMaker.this, Monitor.class);
    startActivity(newIntent);
}

Всякий раз, когда я нажимаю кнопку «домой» и возвращаюсь в приложение, выбранный мной radiobutton по-прежнему выбран, но когда я нажимаю клавишу «Назад», чтобы перейти к предыдущему действию, а затем вернитесь к этому, radiobutton не выбран. Как сохранить состояние ранее выбранного radobutton ? Эти radioobuttons находятся в радиотелекоме . Любая помощь высоко ценится. Благодарю.

РЕДАКТИРОВАТЬ: Хорошо, так это то, что я получил.

public class AdapterClass extends ArrayAdapter{

private final List list;
  private final Activity context;

  public AdapterClass(Activity context, List list) {
    super(context, R.layout.profile_manager, list);
    this.context = context;
    this.list = list;
  }

  static class ViewHolder {
    protected TextView text;
    protected RadioButton radioButton;
      RadioGroup group;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;
    if (convertView == null) {
      LayoutInflater inflator = context.getLayoutInflater();
      view = inflator.inflate(R.layout.button_layout, null);
      final ViewHolder viewHolder = new ViewHolder();
      viewHolder.text = (TextView) view.findViewById(R.id.label);

      viewHolder.radioButton = (RadioButton) view.findViewById(R.id.check);
      viewHolder.radioButton
          .setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
              People element = (People) viewHolder.radioButton
                  .getTag();
              element.setSelected(buttonView.isChecked());

            }
          });
      view.setTag(viewHolder);
      viewHolder.radioButton.setTag(list.get(position));
    } else {
      view = convertView;
      ((ViewHolder) view.getTag()).radioButton.setTag(list.get(position));
    }
    ViewHolder holder = (ViewHolder) view.getTag();
    holder.text.setText(list.get(position).getName());
    holder.radioButton.setChecked(list.get(position).isSelected());
    return view;
  }

Я был взволнован, когда на самом деле был выбран радиобуй. Но проблема в том, что она только выбирает первую кнопку в списке ничем иным, даже если я ее не выбрал и выбрал другой элемент. Кроме того, это позволяет мне выбрать более одного переключателя, который мне не нужен. Что мне не хватает?

0
nl ja de
Ваш рейтинг приема низкий.
добавлено автор Nikita Beloglazov, источник

2 ответы

Вы теряете состояние радиогруппы во время навигации, используя намерение, когда нажата клавиша «назад», поэтому повторная инициализация активности (т. Е. Снова, когда вы приходите на экран, она начнется с oncreate), вам нужно добавить дополнительные функции к своему намерению. состояния переключателя

пример вроде этого

 @Override
public void onBackPressed() {
   //TODO Auto-generated method stub
    super.onBackPressed();

    Intent newIntent = new Intent(ProfileMaker.this, Monitor.class);
newIntent.putExtra("somename",state of the radiobutton);
    startActivity(newIntent);
}

и в проверке активности ProfileMaker есть ли какие-либо дополнительные, если есть дополнительный доступ, и выберите радиообъект в соответствии с этим.

if (getIntent().getExtras().getString("yourextraname") != null)
            applicant = getIntent().getExtras().getString("applicant");
0
добавлено
Я не могу ссылаться на список и выбирать радиобалту. Я могу вносить изменения только с помощью метода this.getListAdapter (). Но этот метод не содержит методов, которые я хочу использовать из метода this.getListView (). Как установить список, выбранный из метода адаптера?
добавлено автор Navio53, источник

Создайте логический массив и заполните его ложным значением как количество переключателей. Теперь, когда вы нажимаете переключатель, сделайте этот индекс истинным, если он был ложным, и если щелкнуть снова, сделайте его ложным. Используйте свой собственный адаптер списка, это поможет вам больше. Я сделал аналогичный, в случае флажка вы можете увидеть мой пост Не удалось проверить/снять флажок CheckedTextView внутри getView . Ответьте мне, если это поможет вам ...

0
добавлено
Я обновил свой вопрос выше.
добавлено автор Navio53, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async

Android Rus
Android Rus
68 участник(ов)