需要帮助吗?我试图将数据从一个活动传递到另一个,我知道,有很多这样的例子,我已经实现了从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"参数获取索引。