0

行項目をリスト ビューから別のアクティビティに送信しようとしていますが、何か間違っている可能性があります。

食べ物用のアプリを 1 つ作りました。そして、ユーザーが「最初のアクティビティ」をクリックすると、このリストビューのリストアイテムが「2番目のアクティビティ」に送信され、ユーザーが「カートに追加」をクリックすると、リストビューアイテムが Cart.class に移動します

しかし、「カートに追加」をクリックすると、アクティビティは Cart.class に送られますが、何もありません。

cart.xml には listvew があります。

私の悪い英語でごめんなさい

前もって感謝します。

最初のアクティビティ。

public class UnderCal extends Activity {


String classes[] = {"Grilled chicken","Asiago","Spicy"};


int[] meal = new int[]{
        R.drawable.grilledchicken,
        R.drawable.asiago,
        R.drawable.spicy


};

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);


    setContentView(R.layout.under_menu);



   final List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();

    for(int i=0;i<3;i++){
        HashMap<String, String> hm = new HashMap<String,String>();

        hm.put("food", Integer.toString(meal[i]));

        hm.put("txt", "" + classes[i]);

        aList.add(hm);

    }


    // Keys used in Hashmap
    String[] from = {"food","arrow","txt"};

    // Ids of views in listview_layout
    int[] to = { R.id.food,R.id.arrow,R.id.txt};

    // Instantiating an adapter to store each items
    // R.layout.listview_layout defines the layout of each item
    SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), aList, R.layout.list_layout, from, to);

    // Getting a reference to listview of main.xml layout file
    final ListView listView = ( ListView ) findViewById(R.id.mylist);

    // Setting the adapter to the listView
    listView.setAdapter(adapter);



    listView.setDivider(new ColorDrawable(0xffffffff));
    listView.setDividerHeight(1);


    listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id)
        {


            if (position == 0)
            {
                Intent intent = new Intent(UnderCal.this,GrilledChicken.class);

               // intent.putExtra("get", aList.get(position));


              String result = (String) listView.getItemAtPosition(position).toString();
              intent.putExtra("get",result);
              startActivity(intent);

                overridePendingTransition(R.anim.animation3, R.anim.animation4);




    }


    }
    });

}

第二の活動。

public class GrilledChicken extends Activity {


Button butadd;


//HashMap<String, String> hm;

String  list;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);


    setContentView(R.layout.grilled_chicken);


    //hash
   // hm =(HashMap<String, String>)getIntent().getSerializableExtra("get");


    Bundle extras = getIntent().getExtras();
    list = extras.getString("get");     

    butadd=(Button) findViewById(R.id.butadd);


    butadd.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub


            Intent intent = new Intent(GrilledChicken.this,Cart.class);
            // intent.putExtra("hm",hm);

            intent.putExtra("list",list);


            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(intent);

            }


    });

Cart.class

public class Cart extends Activity {


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    //Remove title bar
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);


    setContentView(R.layout.cart);


    Bundle extras = getIntent().getExtras();
    String pos = extras.getInt("list");

     }
 }
4

4 に答える 4

2

リストビューからアイテムを取得するには、次のコードを記述する必要があります。

String item = food.get(position).toString();

これを Itemclick メソッドに記述します

于 2013-07-31T07:20:59.590 に答える
0

複数送信 ListView アイテム:-

 ArrayList<String>checked11 = new ArrayList<String>();
 SparseBooleanArray checked = listView1.getCheckedItemPositions();
 final ArrayList<String> selectedItems = new ArrayList<String>();

 for (int i = 0; i < checked.size(); i++) {
     int position = checked.keyAt(i);
     if (checked.get(i))
         selectedItems.add(checked11.get(position));
 }

 String[] outputStrArr = new String[selectedItems.size()];

  for (int i = 0; i < selectedItems.size(); i++) {
       outputStrArr[i] = selectedItems.get(i);
  }

バンドルを使用:

 Bundle bundle = new Bundle();
 Intent intent = new Intent(getApplicationContext(),
                                    OtherActivity.class);
 bundle.putStringArray("selectedItems", outputStrArr);
 intent.putExtra("screen2", "sub");
 intent.putExtras(bundle);
 intent.putExtra(EXTRA_RESPONSE, selected);
 startActivity(intent);
于 2017-01-02T11:51:06.123 に答える