Android: получение правильных данных из одного занятия в другое - PullRequest
0 голосов
/ 19 апреля 2011

Нужна помощь, пожалуйста.Я пытаюсь передать данные из одного действия в другое, и я знаю, что есть множество примеров этого, и я достиг основы загрузки ListActivity из strings.xml и извлечения кнопки .text из кнопки и передачиэто вместе с следующей деятельностью.Однако мне нужно применить данные атрибутов к списку xml и вместо этого передать THAT;поэтому в процессе получения я могу получить идентификатор, который соответствует тому, что было нажато, чтобы я мог извлечь соответствующие данные, которые я хочу отобразить, из strings.xml.ИЛИ просто передайте данные, которые я хочу отобразить, через putExtra.См. Код ниже:

- Активность отправки -

onListItemClick(ListView l, View v, int position, long id) {
 . . .
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
 . . .
Intent myIntent = new Intent(v.getContext(), Activity1.class);
String s = keyword;
Intent i = new Intent(activity.this, activity.class);
myIntent.putExtra("com.activity.Key", s);
startActivityForResult(myIntent, 0);
 . . .

- Активность получения -

onCreate(Bundle savedInstanceState) {
 . . .
String data = null;
Bundle extras = getIntent().getExtras();
if (extras != null) {
    data = extras.getString("com.activity.Key");
} else {
    data = "Extras Was Null";
}
 . . .

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

По запросу, это XML, который я раздуваю.Я добавил второй массив (контент), чтобы я мог сопоставить контент с тем, что было нажато в ListActivity (root_menu);это работа в процессе ...

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, activity!</string>
<string name="app_name">Activity Tutorial</string>
<string-array name="root_menu">
    <item id="o1">Item 1</item>
    <item id="o2">Item 2</item>
    <item id="o3">Item 3</item>
    <item id="o4">Item 4</item>
</string-array>
<string-array name="content">
    <item>Content for Item 1.</item>
    <item>Content for Item 2.</item>
    <item>Content for Item 3.</item>
    <item>Content for Item 4.</item>
</string-array>
</resources>

1 Ответ

0 голосов
/ 19 апреля 2011

Не могли бы вы опубликовать соответствующий XML? Под «кнопкой» вы подразумеваете пункт списка, верно? Похоже, вы пытаетесь сохранить данные в узлах элементов XML как атрибуты, правильно?

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

(Однако то, что вы можете сделать, если вам нужно только читать (а не записывать) ресурс XML, это определять новые типы узлов и извлекать их значения соответственно (возможно, включая значения атрибутов, но я еще не попробовал)) ...

Тем не менее, это может не помочь вам, если все, что вы пытаетесь сделать, - это получить значение выбора списка, что обычно делается только путем поддержания массива значений, соответствующих списку.

Дайте мне знать, если я полностью упускаю суть вашего вопроса.

Редактировать: Похоже, вы просто пытаетесь выяснить, какой элемент списка был нажат, в отличие от содержимого этого элемента. Используйте параметр "position" onListItemClicked , чтобы получить индекс.

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