Android ListView中用于传递变量的隐藏字段

Android ListView中用于传递变量的隐藏字段,android,variables,listview,android-activity,android-intent,Android,Variables,Listview,Android Activity,Android Intent,我正在尝试构建我的第一个应用程序,它几乎可以从网络上的XML文件创建一个列表。只要我单击一个列表项,它就会打开另一个活动并访问另一个在线生成的XML文件,其中包含该项的详细信息。 我成功地让列表和第二个活动窗口运行起来,其中包含了详细信息。剩下要做的唯一一件事就是将id从一个活动传递到另一个活动。 是否有办法将每个条目的ID存储在列表项中?我没有使用本地SQLite数据库或任何东西,所以如果可能的话,我需要找到一种“动态”的方法 提前感谢您的列表应该位于模型上以获取数据,一旦用户单击一行,您应该

我正在尝试构建我的第一个应用程序,它几乎可以从网络上的XML文件创建一个列表。只要我单击一个列表项,它就会打开另一个活动并访问另一个在线生成的XML文件,其中包含该项的详细信息。 我成功地让列表和第二个活动窗口运行起来,其中包含了详细信息。剩下要做的唯一一件事就是将id从一个活动传递到另一个活动。 是否有办法将每个条目的ID存储在列表项中?我没有使用本地SQLite数据库或任何东西,所以如果可能的话,我需要找到一种“动态”的方法
提前感谢

您的列表应该位于模型上以获取数据,一旦用户单击一行,您应该将该位置映射到模型中的一个点。如果您想将其整合在一起,可以在视图上使用来存储任何类型的对象。这不是此功能的传统用法。如果您发布如何创建listview,可能会更有帮助

查看代码后,您可能希望执行以下操作:

public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Intent i = new Intent(getReleases.this, showReleases.class);
i.putExtra("id", lv_arr[position]);
startActivityForResult(i, ACTIVITY_CREATE);
}
public void-onItemClick(适配器视图a、视图v、内部位置、长id){
意图i=新意图(getReleases.this、showReleases.class);
i、 putExtra(“id”,lv_arr[位置]);
startActivityForResult(i,活动\创建);
}
查看如何使用putExtra()。

谢谢我让它工作了!! 以下是代码,以防有人遇到同样的问题:

package en.android.itleaked.com;

import java.net.URL;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class getReleases extends Activity {
    public ListView lv1;
    private static final int ACTIVITY_CREATE = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getFeed();

    }


    public void getFeed() {
        try {
            URL url = new URL("http://www.it-leaked.com/app/main.php");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(new InputSource(url.openStream()));
            doc.getDocumentElement().normalize();
            NodeList nodeList = doc.getElementsByTagName("item");
            String lv_arr[] = new String[nodeList.getLength()];
            final String lv_arr_id[] = new String[nodeList.getLength()];  
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                Element fstElmnt = (Element) node;
                NodeList nameList = fstElmnt.getElementsByTagName("title");
                Element nameElement = (Element) nameList.item(0);
                nameList = nameElement.getChildNodes();
                lv_arr[i] = ((Node) nameList.item(0)).getNodeValue();

                NodeList idList = fstElmnt.getElementsByTagName("id");
                Element idElement = (Element) idList.item(0);
                idList = idElement.getChildNodes();
                lv_arr_id[i] = ((Node) idList.item(0)).getNodeValue();
            }

            lv1=(ListView)findViewById(R.id.ListView01);
            lv1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lv_arr));

            lv1.setTextFilterEnabled(true);
            lv1.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                            Intent i = new Intent(getReleases.this, showReleases.class);
                            i.putExtra("id", lv_arr_id[position]);
                            startActivityForResult(i, ACTIVITY_CREATE);
                    }
            });


        }

            catch (Exception e) {
                Toast.makeText(this, "Error: " + e, Toast.LENGTH_LONG).show();
            }
        }

}

嘿,谢谢你的回复!这是我的代码:xml正在生成,我想要的是能够将ID传递给showReleases活动,这样我就可以从那里以相同的方式获取xml,并在服务器上生成内容……例如,我希望你能帮助我,因为我是新手,我已经花了2天的时间来完成这项工作。你应该完成你的任务在单独的线程中进行网络调用。如果你从未见过“应用程序没有回应”窗口感谢你的例子,那正是我所需要的。
package en.android.itleaked.com;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class showReleases extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.releasedetails);

        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String releaseid = extras.getString("id");
            Toast.makeText(this, releaseid, Toast.LENGTH_LONG).show();
        }
    }
}