5

クリック可能なアイテム(多くの)値をlistViewに保存し、次のアクティビティlistViewにアイテムを表示する方法.私はそれを試みましたが、前のアクティビティlistView.iから値を1つしか取得しませんでした(さらにアイテムをクリックすると、最後の値のみが表示されます)。 used String[] type GlobalVariable myval;

グローバルクラス

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

ホームアクティビティ

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



        }
    });
    }
   }

前もって感謝します

4

4 に答える 4

3

リスト項目でクリック

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

最初はこうやって

// アクティビティで作成する前に配列リストを宣言します

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

}
    });
于 2012-07-13T08:01:05.477 に答える
2

OnItemClick() は、ListView の項目がクリックされるたびに呼び出されます。OnItemClick() メソッドが呼び出されるたびに S5 配列を作成しています。その後、GlobalClass.myval を、最後にクリックされた値のみを持つ新しく作成された配列で上書きします。すべての値を収集するには、グローバル配列を維持します。クリックした値を GlobalClass.myval に直接追加することもできます (必要なタイプの配列であると仮定します)。別の提案として、配列の代わりにリストを維持します。

于 2012-07-13T07:37:21.973 に答える
1

ListViewにコンテンツを追加してから、ListItem値ごとにonItemClickListenerを使用します。以下のコードで目標を達成できます。

文字列配列の代わりにこれをグローバル変数に使用します

グローバルクラス

 class GlobalClass extends Application {
 public static List<String> myVal = new ArrayList<String>() ;
 }

HomeActivity

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

             }
        }); 
    }

これで、クリックされたすべての値がListArrayに含まれます。

お役に立てば幸いです。

于 2012-07-13T07:51:47.087 に答える
1
    There is one more way we can add items to string array like this

    int i = 0 ;

     String[] S5;

    fix its size 
    else if(Text.equals("BEVERAGES")){         
                        l1.setAdapter(bever);
                        return;
                    }    
                    else if(Text.equals("BREAKFAST")){
                        l1.setAdapter(Breakf);
     S5=new String[]{Breakf.size()};
                        return;
                    }
                    else if(Text.equals("LUNCH")){
                        l1.setAdapter(lunc);
     S5=new String[]{lunc.size()};
                        return;
                    }
                    else if(Text.equals("DINNER")){
                        l1.setAdapter(Dinn);
     S5=new String[]{Dinn.size()};
                        return;

                    }
                    else if(Text.equals("DESSERTS")){
                        l1.setAdapter(Dessert);
     S5=new String[]{Dessert.size()};
                        return;
                    }
                    else if(Text.equals("APPETIZERS & SIDES")){
                        l1.setAdapter(Appet);
     S5=new String[]{Appet.size()};
                        return;
                    }


    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[] S1=new String[]{s2};

//    it add a new element to string array all the time list item is clicked
     S5[i] =  s2 ;
    i++       
    );
于 2012-07-15T07:03:34.617 に答える