android - 如何使用 onItemClickListener 从 ListView 存储可点击项目?

标签 android

如何在 listView 中存储可点击项目(许多)值并在下一个 Activity listView 中显示项目。我试过了,但我只有一个值(如果我点击更多项目,最后一个只显示)来自之前的Activity listView.i使用了String[] type GlobalVariable myval;

全局类

class GlobalClass extends Application {
     public static String[] myval;
}

主页 Activity

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



        }
    });
    }
   }

提前致谢

最佳答案

在列表项中点击

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

you add values to a string array like
    String[] S5=new String[]{s2}; 
         this will ovverride the previous element the all time shall 
    not add any other value




                  //String[] S1=new String[]{s2};
                  GlobalClass.myval=S5;
                  for (int i=0;i<GlobalClass.myval.length;i++){
                      System .out.println("Clicked-->"+GlobalClass.myval[i]);
                  }

先这样做

//在您的 Activity 中创建之前声明数组列表

    private ArrayList<String> AddedItems = new ArrayList<String>();


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

when lsit tiem is clicked add it to a array list like
           AddedItems.add(((TextView) view).getText());




          }


Once all click events are done 

before going to next activity 

b1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

convert the string list to string array or whereevr in the activity you want 
// create string array  from array list

        myval= listPar.toArray(new String[AddedItems .size()]);

}
    });

关于android - 如何使用 onItemClickListener 从 ListView 存储可点击项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11465956/

相关文章:

android - CWAC 摄像头是否捕获用户的 GPS 位置?

android - 在它们之间有分隔线的 TextView

android - 从下到上滚动 ListView

android - Android 中的处理程序

java - 使用 volley 进行 PATCH 请求

android - Flutter Plugin : crash_dump. cpp:无法附加到线程 185:权限被拒绝

android - 将文件从系统存储(/data/data...)复制到外部存储

android - NotificationChannel 名称和描述的用途

android - 具有相同 key 的多个条目 : android:allowBackup=REPLACE and android1:allowBackup=REPLACE

android - 检测 USB 设备何时在 Android 上分离