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



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

正如你所看到的,我从按钮中获取文本数据,这并不能真正帮助我获得与该按钮相关的内容。我觉得我需要传递节点的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>

能否发布相应的XML?你说的"按钮"是指列表项,对吗?听起来像是要将数据作为属性存储在XML项节点中,对吗?

不幸的是,我认为Android不支持这一点——资源XML文件是预编译的,不能从那里修改,我也不相信你可以任意定义新的属性来检索。

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

但是,如果您试图做的只是检索列表选择的值,那么这可能没有帮助,这通常是通过维护与列表匹配的值数组来完成的。

如果我完全没有理解你的问题,请告诉我。

编辑:看起来你只是想找出哪个列表项目被点击了,而不是该项目的内容。使用onlisttitemclicked的"position"参数获取索引。

最新更新