Android:从一个Activity获取正确的数据到另一个Activity

时间:2011-04-19 17:58:36

标签: android xml android-activity

请寻求帮助。我试图将数据从一个活动传递到另一个活动,我知道,有很多这样的例子,我已经实现了从strings.xml中加载ListActivity并从按钮中拉出按钮.text的基础知识。它一直到下一个活动。但是,我需要的是将属性数据应用到xml列表并传递THAT;所以在接收活动中我可以收到一个与点击内容相关的ID,这样我就可以从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";
}
 . . .

正如您所看到的,我从按钮获取文本数据,这实际上并没有帮助我获得与该按钮相关的内容。我觉得我需要传递Node的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 :(得分:0)

你能发布相应的XML吗?通过&#34;按钮&#34;你的意思是列表项,对吗?听起来你正试图将数据作为属性存储在XML项目节点中,对吗?

不幸的是,我认为Android不支持 - 资源XML文件是预编译的,无法从那里进行修改,我也不相信你可以随意定义要检索的新属性。

(但是,如果您只需要读取(而不是写入)资源XML,可以做什么就是定义新类型的节点,并相应地检索它们的值(可能包括属性值,但是我还没试过))...

但是,如果您尝试做的只是检索列表选择的值,这通常可以通过维护与列表匹配的值数组来完成。

如果我完全忽略了你的问题,请告诉我。

修改:您似乎只想找出点击了哪个列表项,而不是该项目的内容。使用&#34;位置&#34;获取索引的onListItemClicked参数。