0

我正在制作一个应用程序,在其中我使用 xml 解析器将数据输入列表视图,并使用每个列表视图项目行我需要打开另一个列表视图,我可以打开另一个列表视图,但是每当我调用另一个列表视图时,我就没有得到视图每次我使用某些字段名称查看第一个列表视图时所需的列表视图,只有那些在两个列表视图中都匹配,例如:标题和描述,我已经尝试了很多方法但仍然无法解决这个问题,有人指导我我怎样才能实现我的目标。Noe:-我正在使用不同的视图,对于列表视图中的每个单击项目行,例如:- 在某些列表视图中,我只使用文本视图、图像视图、图像按钮,而在某处我使用文本视图、图像视图、图像按钮和复选框。

FancyItem.java 代码:-

public class FancyItem extends Activity {
// All static variables
static final String URL = "http://***.net/android/fabriclist.xml";
// XML node keys
static final String KEY_FANCY = "fancy"; // parent node
static final String KEY_TITLE = "title";
static final String KEY_DESCRIPTION = "desc";
static final String KEY_THUMB_URL= "thumb_url";
static final String KEY_TROUSERS = "trousers";
static final String KEY_JEANS = "jeans";
static final String KEY_SHIRTS = "shirts";


ListView fancy_list_view;
    LazyAdapter fancy_list_adapter;

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


ArrayList<HashMap<String, String>> fancyList = 
    new ArrayList<HashMap<String, String>>();

    XMLParser parser = new XMLParser();
    String xml = parser.getXmlFromUrl(URL); // getting XML from URL
    Document doc = parser.getDomElement(xml); // getting DOM element

    NodeList nl = doc.getElementsByTagName(KEY_FANCY);
    // looping through all list nodes <list>
    for (int i = 0; i < nl.getLength(); i++) {
        // creating new HashMap
        HashMap<String, String> map = new HashMap<String, String>();
        Element e = (Element) nl.item(i);
        // adding each child node to HashMap key => value
        map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
        map.put(KEY_DESCRIPTION, parser.getValue(e, KEY_DESCRIPTION));
        map.put(KEY_THUMB_URL, parser.getValue(e, KEY_THUMB_URL));
        map.put(KEY_TROUSERS, parser.getValue(e, KEY_TROUSERS));
        map.put(KEY_JEANS, parser.getValue(e, KEY_JEANS));
        map.put(KEY_SHIRTS, parser.getValue(e, KEY_SHIRTS));


        // adding HashList to ArrayList
        fancyList.add(map);
    }


    fancy_list_view=(ListView)findViewById(R.id.list);

    // Getting adapter by passing xml data ArrayList
    fancy_list_adapter=new LazyAdapter(this, fancyList);        
    fancy_list_view.setAdapter(fancy_list_adapter);


    // Click event for single list row
    fancy_list_view.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) 
            {

                if(position==0)
                    {
        Intent in = new Intent(CustomizedListView.this, FancyItem.class);
                        startActivity(in);
                    }
                                }



        });     
    }   
}
4

1 回答 1

0

通常你有类似的东西

mListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int position, long id) {
                ...
                //your logic here depending on position
                }

因此您可以使用位置变量来决定接下来要打开哪个列表视图。

于 2012-10-16T05:50:01.310 回答