私は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);
}
}
});
}
}