0

私はxmlパーサーを使用してリストビューにデータを取得し、各リストビュー項目行を使用して別のリストビューを開く必要があるアプリを作成していますが、別のリストビューを開くことができますが、別のリストビューを呼び出すたびにビューが表示されません必要なリストビューのたびに、いくつかのフィールド名を持つ最初のリストビューのビューを取得しています。タイトルと説明のような両方のリストビューで一致するもののみです。多くの方法で試しましたが、まだこれを解決できません。誰かが私を案内してくれますどうすれば目標を達成できますか。いいえ:- リストビューでクリックされた項目行ごとに、異なるビューを使用しています。

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 に答える