#android #arrays #textview
#Android #массивы #текстовое представление
Вопрос:
Я довольно новичок в программировании на Android, и на данный момент я программирую приложение.
В моем приложении вы получаете listview, который заполняется массивом. Он заполнен именами. Когда я нажимаю на имя, открывается новый экран. На этом экране у меня есть текстовое представление. Я хочу, чтобы это текстовое представление было заполнено выбранным именем listview (массива).
Я пытался найти его в Интернете, учебные пособия для этого, но не смог найти ни одного. Если кто-нибудь сможет мне помочь, я бы очень оценил это 🙂
Комментарии:
1. успешно ли вы запускаете новое приложение? это действительно просто, используя a
OnItemClickedListener
(для определения щелчка) и используя anIntent
для использования сstartActivity
функцией2. OnItemClickedListener вы получаете позицию и получаете значение из этой позиции массива, а также получаете строковое значение элемента массива и переходите к новому действию………
Ответ №1:
Я предполагаю, что вы попадаете на новый экран (который, как я полагаю, является действием) с помощью намерения.
После того, как вы создали намерение
Intent intent = new Intent (... );
вы можете добавить дополнительную информацию к этому намерению.
intent.putExtra("param_name", value);
В новом действии вы можете получить намерение с помощью:
Intent callerIntent = getIntent();
if (callerIntent.hasExtra("param_name")) {
int value = callerIntent.getIntExtra("param_name", default_value);
}
Существуют различные типы, которые намерение может содержать как дополнительные. Проверьте http://developer.android.com/reference/android/content/Intent.html
Комментарии:
1. затем просто поместите «sipIntent.putExtra (…)» непосредственно перед startActivity.
2. значение int = callerIntent.getIntExtra(«param_name»); не работает. в нем говорится, что getIntentExtra неверен. =(
3. мой плохой. getIntExtra имеет второй параметр с параметром по умолчанию. я отредактировал ответ
4. Но каково значение по умолчанию и как я могу получить информацию, которую я взял в текстовом представлении? Я не могу просто сказать EditText name = (EditText) findViewById(R.id.txtNaamAgent); name.setText(callerIntent); или что-то в этом роде. или я неправильно понимаю?
5. затем вместо использования выбранного индекса (значения int ) в качестве дополнительного int используйте полученный текст в виде строки (getStringExtra).
Ответ №2:
используйте
intent.putExtra("clickedName", name[position]);
и в следующем действии.
String clickedName = getIntent().getStringExtra("clickedName");
дополнительные функции используются для передачи простой информации между действиями.
Ответ №3:
Сделайте что-то вроде этого.Напишите эту функцию вне метода onCreate() metho5
public void onListItemClick(ListView parent, View v, int position, long id) {
Intent i = new Intent(this, your_target_activity.class);
Bundle b = new Bundle();
b.putInt("name", your_array[position]);
i.putExtras(b);
startActivityForResult(i);
finish();
}