1

When I click on list on product1 I get [product1], similarly when clicking on product2 I get [product2], but I want this: if I click on product 1 and then product 2, output has to be: [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);   


    }



}

3 Answers 3

1

Just Track the position where user had click.

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   
    
    
        }

You can get all list of data by using posArray like

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

Or Simply you can use titles[posArray.get(i)]) On onListItemClick, too.

EDIT

Try to initialize globally to

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

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

& then add them into onListItemClick method

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

  
Sign up to request clarification or add additional context in comments.

2 Comments

public void onListItemClick(ListView l, View view, final int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, view, position, id); posArray =new ArrayList<Integer> (); posArray.add(position); for(int i=0;i<posArray.size();i++){ System.out.println("title"+ titles[posArray.get(i)]); } } getting as product1 when clicked on firstitem and similarly product2 when clicked on second item.
remove posArray =new ArrayList<Integer> (); from onListItemClick. As it will re initialize when user click on list
0

I have modified this class and declared arrayList(titleArray and desArray) globally.Now it should work.

public class MyListFrag extends ListFragment {

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

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

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



      titleArray.add(data1);      
      desArray.add(data2);

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


}

}

2 Comments

@geet You should have answered more descriptively so that user2042881 would have understood.
@geet Hold on..I didnt copy your answer rather i should say any android developer could have pointed this fault.
0

Your titleArray and desArray are local variables, they need to be moved out of onListItemClick method

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.