如何使用onItemClickListener存储ListView中的可点击项?

USE*_*762 5 android

如何在listView中存储可点击的项目(很多)值并在下一个Activity listView中显示项目.我尝试了但是我只从前一个Activity listView.i获得了一个值(如果我点击了更多的项目,最后一个只显示) used String [] type GlobalVariable myval;

GlobalClass

class GlobalClass extends Application {
     public static String[] myval;
}
Run Code Online (Sandbox Code Playgroud)

HomeActivity

public  class HomeActivity extends Activity {
    String[] Category={"----SELECT---- ","BEVERAGES","BREAKFAST","LUNCH","DINNER","DESSERTS","APPETIZERS & SIDES"};
    String[] Beverage={"PEPSI","COKE","LASSI","FALOODA","BUTTER MILK","GREEN TEA","BADAM MILK","MASALA CHAI" };
    String[] Breakfast={"SIRLOIN & EGG","CFS STEAK & EGG","T-BONE & EGG","TWO EGGS BREAKFAST","2EGG W/MEAT","BEL WAFFLE","BEL WAFFLE W/MEAT","BLUEBERRY CAKE","CAKES","FABULOUS FRENCH TST","MOONS","FRENCH TST"};
    String[] Lunch={" CRAB CAKE SANDWICH","TUSCAN GRILLED CHICKEN PANINI","SOUTHWEST TURKEY CLUB"," LOBSTER ROLL","TUNA MELT"," FRENCH DIP","YOUR OWN SANDWICH"};
    String[] Dinner={"DUBLIN BAY PRAWN","CRAB FROM BRITTANY","WHITE ASPARAGUS","BLEWIT MUSHROOM","JOHN DORY FISH","MONKFISH","VEAL SWEET BREAD","LAMB","PIGEON FRY"};
    String[] Desserts={"ECHOURGNAC CHEESE","HAZELNUT","GARIGUETTE STRAWBERRY","MOUSSE & ZEST","APRICOT","CHOCOLATE"};
    String[] Appetizers={"Greek Artichoke Spinach","Seafood Appetizers","Tapenade Flatbread","Cranberry Blue Cheese","Fig and Blue Cheese","Sun-Dried Tomato","Tropical Crab Rangoon"};
    Spinner spinner;
    ListView l1;
    Button b1;
    Button b2;
    Button b3;
    EditText e1;
    EditText e2;
    String[] item;
    int myid;

    /** Called when the activity is first created. **/
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);
        spinner = (Spinner) findViewById(R.id.spinnerCategory);
        l1=(ListView) findViewById (R.id.list);
        b1=(Button)findViewById(R.id.button3);
        b2=(Button)findViewById(R.id.button2);
        b3=(Button)findViewById(R.id.button1);
        e1=(EditText)findViewById(R.id.editText1);
        e2=(EditText)findViewById(R.id.editText2);
        ArrayAdapter<String> adapter = new ArrayAdapter<String> this,android.R.layout.simple_spinner_item, Category);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        final ArrayAdapter<String> bever = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Beverage);

        // Assign adapter to ListView
        final ArrayAdapter<String> Breakf = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Breakfast);
        final ArrayAdapter<String> lunc= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Lunch);     
        final ArrayAdapter<String> Dinn= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Dinner);     
        final ArrayAdapter<String> Dessert = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Desserts);     
        final ArrayAdapter<String> Appet= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Appetizers);     

        spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
            public void onItemSelected(AdapterView<?> parent, View arg1, int pos,long id) {              
            String Text = parent.getSelectedItem().toString();
                if(Text.equals("----SELECT----")) {

                }       
                else if(Text.equals("BEVERAGES")){         
                    l1.setAdapter(bever);
                    return;
                }    
                else if(Text.equals("BREAKFAST")){
                    l1.setAdapter(Breakf);
                    return;
                }
                else if(Text.equals("LUNCH")){
                    l1.setAdapter(lunc);
                    return;
                }
                else if(Text.equals("DINNER")){
                    l1.setAdapter(Dinn);
                    return;

                }
                else if(Text.equals("DESSERTS")){
                    l1.setAdapter(Dessert);
                    return;
                }
                else if(Text.equals("APPETIZERS & SIDES")){
                    l1.setAdapter(Appet);
                    return;
                }
           }


           public void onNothingSelected(AdapterView<?> arg0){

           }

       });

   l1.setOnItemClickListener(new OnItemClickListener() {
       public void onItemClick(AdapterView<?> parent, View view,
           int position, long id) {
           // When clicked, show a toast with the TextView text
          Toast.makeText(getApplicationContext(), "SELECTED :: " +((TextView) view).getText(), Toast.LENGTH_SHORT).show();
          String s2=(String) ((TextView) view).getText();
          // String ss=Integer.toString(myid);
          String[] S5=new String[]{s2};
          //String[] S1=new String[]{s2};
          GlobalClass.myval=S5;
          for (int i=0;i<GlobalClass.myval.length;i++){
              System .out.println("Clicked-->"+GlobalClass.myval[i]);
          }
          //System.out.println("Clicked:" + GlobalClass.myval);



          // System.out.println("items--"+l1.getItemIdAtPosition(position));
          //i.putExtra("item", item);
          //GlobalClass.myval=(String[]) l1.getSelectedItem();
          //GlobalClass.myval=a1;

          //String[] item =  (String[]) (l1.getItemAtPosition(position));
          //String[] a2=item;
          //GlobalClass.myval=a2;

          }
   });


   b1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            String tno = e1.getText().toString();
            int tn = Integer.parseInt(tno);

            Intent i=new Intent(getApplicationContext(),TicketActivity.class);
            Bundle b=new Bundle();
            b.putInt("Table No:", tn);
            i.putExtras(b);
            String et= e2.getText().toString();
            int et1 = Integer.parseInt(et);
            Bundle be=new Bundle();
            be.putInt("Guest:", et1);
            i.putExtras(be); 

            startActivity(i);



        }
    });
    }
   }
Run Code Online (Sandbox Code Playgroud)

提前致谢

vin*_*thp 1

将内容添加到 ListView,然后对每个 ListItem 值使用 onItemClickListener。您可以通过以下代码实现您的目标。

使用它作为全局变量而不是字符串数组

全球级

 class GlobalClass extends Application {
 public static List<String> myVal = new ArrayList<String>() ;
 }
Run Code Online (Sandbox Code Playgroud)

主页活动

OnItemClickListener

   listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

             String clickedvalue =(String) parent.getItemAtPosition(position); 
             myVal.add(clickedvalue);

             }
        }); 
    }
Run Code Online (Sandbox Code Playgroud)

现在所有单击的值都将位于您的 ListArray 中。

我希望它有帮助。