0

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();

        }
4

1 に答える 1

0

コードの 2 番目のブロックで意図が得られない場合は、次のようなものを使用してみてください。

String names = getIntent().getStringExtra("Name");

それでもうまくいかない場合は、最初の i.putExtra をハードコーディングして、送信されるデータが空でないことを再確認してください。

i.putExtra("Name","Test Name");

それが役に立てば幸い

于 2012-07-24T11:39:54.013 に答える