listViewから同じ選択された位置でfromarraylistを取得し、両方の値をnxtアクティビティに渡すことに問題があります。私のコードは、リストビューから選択されたアイテムの値のみを渡しますが、ListAdaptername.get(position); 要素の値を元に戻します。これが私のコードです。
//値をnxtactivitiに送信する部分
lv = getListView();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, names);
setListAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{//getApplicationContext
//String bb=parent.getItemAtPosition(position).toString();
String name=names.get(position);
Intent i = new Intent(LastActivity.this, Details.class);
String des=desc.get(position).toString();
i.putExtra("Name",name);
i.putExtra("desc",des);
// starting new activity
startActivity(i);
//LastActivity.this
}
});
}
//ここでリストを定義して値を呼び出します:
ListView lv;
static String UName="OName";
static String UniUrl="Odesc";
public String val;
static List<String> desc;
static ArrayList<String> names;
URL url;
XmlPullParserFactory factory;
XmlPullParser xpp;
boolean insideItem;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
lv=(ListView) findViewById(R.id.list1);
links=new ArrayList<String>();
names=new ArrayList<String>();
try{
url=new URL("http://api.androidhive.info/pizza/?format=xml");
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);
xpp = factory.newPullParser();
xpp.setInput(getInputStream(url), "UTF_8");
insideItem = false;
// Returns the type of current event: START_TAG, END_TAG, etc..
int eventType = xpp.getEventType();
int x=0;
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
if (xpp.getName().equalsIgnoreCase("item")) {
insideItem = true;
} else if (xpp.getName().equalsIgnoreCase(OName)) {
if (insideItem)
names.add(xpp.nextText()); //extract the headline
} else if (xpp.getName().equalsIgnoreCase(Odesc)) {
if (insideItem)
desc.add(xpp.nextText()); //extract the link of article
}
}else if(eventType==XmlPullParser.END_TAG && xpp.getName().equalsIgnoreCase("item")){
insideItem=false;
}
eventType = xpp.next(); //move to next element
}
}catch (MalformedURLException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e)
{
e.printStackTrace();
}