通过使用Intent传递ListView



我已经创建了一个包含-

的List View
    "婴儿用品"
  • "面包房"
  • "烘烤"
  • "饮料"
  • "罐头"
  • "谷物早餐"
  • "调味品"
  • "奶"
  • "冷冻食品"
  • "杂项"
  • "非食品项目"
  • "意大利面/大米"
  • "零食"

然后,我还想为每个列表视图创建一个onClick布局。

如果我点击Shopping Items (ListView)中的Baby Items

购物项目(JAVA)

public class ShoppingItems extends ActionBarActivity {
ListView listView;
ArrayAdapter<String> adapter;
String[] item_category = {"Baby Items", "Bakery", "Baking",
        "Beverages", "Canned Goods", "Cereal Breakfast", "Condiments",
        "Dairy", "Frozen Foods", "Miscellaneous", "Non-Food Items",
        "Pasta / Rice", "Snacks"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_shopping_items);
    listView = (ListView) findViewById(R.id.list_view);
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,item_category);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getBaseContext(),parent.getItemAtPosition(position)+ " is selected",Toast.LENGTH_LONG).show();
        }
    });
}
<标题> BABY_ITEMS (JAVA)
public class Baby_Items extends ActionBarActivity {
ArrayList<Products> products = new ArrayList<Products>();
ListAdapter boxAdapter;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_baby__items);
    ListView lvMain = (ListView) findViewById(R.id.lvbabyitems);
    lvMain.setAdapter(boxAdapter);
}
void fillData() {
    for (int i = 1; i <= 20; i++) {
        products.add(new Products("Products " + i, i * 100, false));
    }
}
public void showResult(View v) {
    String result = "Selected Product are :";
    int totalAmount=0;
    for (Products p : boxAdapter.getBox()) {
        if (p.box){
            result += "n" + p.name;
            totalAmount+=p.price;
        }
    }
    Toast.makeText(this, result+"n"+"Total Amount:="+totalAmount, Toast.LENGTH_LONG).show();
}

查看本教程,了解ListView实现的基础知识。

单击ListView项,可以使用Intent开始新的Activity

试试这个onClick方法

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getBaseContext(),parent.getItemAtPosition(position)+ " is selected",Toast.LENGTH_LONG).show();
             Intent intent = new Intent(ShoppingItems.this, Baby_Items.class);
            intent.putExtra("baby_item", "" + parent.getItemAtPosition(position));
            startActivity(intent);
        }
    });

和在Baby_Items活动中获得额外的数据,如

if (getIntent().getExtras().containsKey("baby_item")) {
            String item = getIntent().getStringExtra("baby_item");
        }

最新更新