#android #string #android-activity #textview #spinner
#Android #строка #android-активность #textview #счетчик
Вопрос:
Попробовав несколько методов, предложенных в других сообщениях на этом сайте, я могу только предположить, что я тупой, поэтому, если кто-нибудь сможет взглянуть на мой код, я был бы благодарен.
У меня есть выбранный элемент в spinner в одном действии, и я сохранил этот элемент в виде строки, затем передал строку следующему действию и отобразил ее в текстовом представлении в этом действии. Это работает.
Что я хотел бы сделать сейчас, так это передать эту строку в третье действие и отобразить ее в другом текстовом представлении в третьем действии.
Чтобы добиться этого, вот код из моего первого действия после нажатия кнопки.
Intent recordissues2 = new Intent(RecordIssue.this, RecordIssue2.class);
Bundle sitename = new Bundle();
sitename.putString("txt1a",spinnerbuilding.getSelectedItem().toString());
recordissues2.putExtras(sitename);
startActivity(recordissues2);
И для второго действия в onCreate
Bundle sitename = this.getIntent().getExtras();
String txt1a = sitename.getString("txt1a");
((TextView) findViewById(Sitelbl2)).setText(txt1a);
если вы можете помочь мне с каким-нибудь примером кода для достижения следующего шага и того, куда он должен идти, и, желательно, как именно он работает, это было бы идеально.
Заранее благодарю вас. Рик
Ответ №1:
вы можете использовать общие настройки для хранения данных и использовать их во всем приложении в любом классе действий:
SharedPreferences myprefs= this.getSharedPreferences("shared_key", MODE_WORLD_READABLE);
myprefs.edit().putString("spinner_value", value).commit();
Вы можете получить эту информацию в своем приложении следующим образом:
SharedPreferences myprefs= getSharedPreferences("shared_key", MODE_WORLD_READABLE);
String spinner_value= myprefs.getString("spinner_value", null);
Комментарии:
1. Спасибо, как будто я что-то упускаю, в моих ограниченных знаниях, очевидно, есть пробел, потому что, когда я использую ваш код, он сообщает мне, что «не может разрешить значение символа», поэтому, не имея «значения», я понимаю, что должен его изменить, но на что? Я поместил код в событие on click, но перед намерением перейти к следующему событию, возможно, это неправильно, я не уверен.
2. нет проблем,,,здесь value= spinnerbuilding.getSelectedItem().toString(); значение счетчика, которое вы хотите сохранить … если это сработает, можете ли вы принять ответ
3. Ну, я использовал ваш код, и он дал мне достаточно понимания, чтобы внести изменения, необходимые для того, чтобы он работал.
4. Вот изменения, которые я использовал:
5. Первое действие: ‘SharedPreferences myprefs= this.getSharedPreferences(«shared_key», Context.MODE_PRIVATE); SharedPreferences. Редактор editor = myprefs.edit(); editor.putString(«spinner_value», spinnerbuilding.getSelectedItem().toString()); editor.apply();’ И второе действие’ SharedPreferences myprefs= getSharedPreferences(«shared_key», Context.MODE_PRIVATE); Строка spinner_value = myprefs.getString(«spinner_value»,»»); ((TextView)findViewById(R.id.tvbuilding)).setText(spinner_value);’
Ответ №2:
В вашем RecordIssue2
действии вы уже сохранили свой текст как txt1a
. Используя ту же концепцию, добавьте ее в свой Intent
пакет при переходе к третьему действию.
Intent recordissues3 = new Intent(RecordIssue2.this, RecordIssue3.class);
Bundle sitename = new Bundle();
sitename.putString("txt1a",txt1a);
recordissues3.putExtras(sitename);
startActivity(recordissues3);
Комментарии:
1. Спасибо, но, как и в приведенном выше ответе, я получаю «не удается разрешить символ ‘txt1a'», где «sitename.putString(«txt1a», ЯВЛЯЕТСЯ ПРОБЛЕМОЙ)»
2. Вы должны сделать это после
Bundle sitename = this.getIntent().getExtras(); String txt1a = sitename.getString("txt1a"); ((TextView) findViewById(Sitelbl2)).setText(txt1a);
выполнения второго действия, чтобы оноtxt1a
уже было определено, возможно, одним нажатием кнопки.3. Привет, я принял другой ответ, но если вы посмотрите на мой другой вопрос и опубликуете это решение там, я спросил, как это делается без использования sharedprefs, и поскольку ваше решение действительно работает, я отмечу его как правильное. Спасибо.
4. Не проблема, если ваша проблема решена.