android - Listview onitem点击数据进入arraylist

标签 android listview

当我点击 product1 的列表时,我得到 [product1],类似地,当我点击 product2 时,我得到 [product2],但我想要这个:如果我点击产品 1,然后是产品 2,输出必须是:[product1, product2]

public class MyListFrag extends ListFragment {

    Context context;    
    ListView listView;
    List<Content> rowItems;

    public static final String[] titles = new String[] { "Product1", "Product2", "product3" };
    public static final String[] descriptions = new String[] { "Android", "iphone", "blackberry"};



    public void onAttach(Activity activity) {
        // TODO Auto-generated method stub
        super.onAttach(activity);
        this.context = activity.getApplicationContext();

        rowItems = new ArrayList<Content>();
        for (int i = 0; i < titles.length; i++) {
            Content item = new Content( titles[i], descriptions[i]);
            rowItems.add(item);         

        }       

        setListAdapter(new CustomBaseAdapter(activity.getApplicationContext(), rowItems));
    }


    public void onListItemClick(ListView l, View view, final int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, view, position, id);       

          String data1 =rowItems.get(position).getTitle();    
           System.out.println("Title"+data1);

          String data2 =rowItems.get(position).getDescriptio();       
          System.out.println("Descr"+data1);


          ArrayList<String> titleArray = new ArrayList<String>();         
          TitleArray.add(data1);      

                  ArrayList<String> desArray = new ArrayList<String>();       
          desArray.add(data2);

          System.out.println("Title::::"+titleArray);         
          System.out.println("descr:::"+desArray);   


    }



}

最佳答案

只需跟踪用户点击的位置。

ArrayList<Integer> posArray =new ArrayList<Integer> ();
     public void onListItemClick(ListView l, View view, final int position, long id) {
            // TODO Auto-generated method stub
            super.onListItemClick(l, view, position, id);       
     posArray.add(Integer.parseInt(position));
             // rest of the code   
    
    
        }

您可以使用 posArray 来获取所有数据列表

for(int i=0;i<posArray.size();i++){
System.out.println(String.ValueOf(titles[posArray.get(i)]));
}

或者您也可以在 onListItemClick 上使用 titles[posArray.get(i)])

编辑

尝试全局初始化为

 ArrayList<String> titleArray = new ArrayList<String>();         

    
 ArrayList<String> desArray = new ArrayList<String>();  

& 然后将它们添加到 onListItemClick 方法中

             TitleArray.add(data1);      
              desArray.add(data2);
    
              System.out.println("Title::::"+titleArray);         
              System.out.println("descr:::"+desArray); 

  

关于android - Listview onitem点击数据进入arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202054/

相关文章:

java - 选定的行项目在 ListActivity 中保持突出显示

c# - 如何将计算列添加到数据绑定(bind) ListView ?

c# - 使用c#在wpf listview中添加图像

android - Google Play 服务和 Google 游戏

android - facebook api、google+ api、vk api 中不出现确认登录对话框

Android GridView 显示不正确的项目和 fragment 显示在另一个 fragment 之上

android - 从 Activity/Fragment 更改适配器属性

Android:屏幕旋转后 ListView 双条目

java - 谷歌地图与自定义图像作为特定位置的图标

Android检测车辆是否移动