繁体   English   中英

Android:将正确的数据从一个活动获取到另一个活动

[英]Android: Getting the right data from one Activity to Another 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";
}
 . . .

如您所见,我正在从按钮中获取文本数据,但这并不能真正帮助我获得与该按钮相关的内容。 我觉得我需要传递节点的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,您可以做的是定义新的节点类型,并相应地检索它们的值(可能包括属性值,但我尚未尝试过)。 ..

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

让我知道我是否完全遗漏了您的问题。

编辑:看起来您只是在试图找出单击了哪个列表项,而不是该项目的内容。 使用onListItemClicked的“ position”参数获取索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM