单击listview中的项目打开活动,其中包含基于android studio中单击的项目的列表

时间:2016-02-21 22:20:03

标签: java android android-layout listview

我正在用一个简单的应用程序学习android。有没有办法,当我点击列表视图中的某个项目时,它会转到一个新活动,但它包含特定于所点击项目的特定列表。

例如:

清单1 - >(ActivityName)奶酪,苹果,水

清单2 - >(ActivityName)面包,葡萄,苏打水

列表3 - >(ActivityName)蛋糕,橙子,牛奶

我知道如何打开一个新活动并使用意图传递数据,但我不知道如何将列表作为列表视图中的1项包含。

1 个答案:

答案 0 :(得分:0)

您所需要的只是将字符串列表传递给您的新活动。

以下是示例代码:

ListView lstView;
ArrayAdapter<String> adapter;
ArrayList<String> list = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

lstView = (ListView) findViewById(R.id.main_activity_layout);

// Set the ArrayAdapter as the ListView's adapter.
adapter= new ArrayAdapter<String>(this, R.layout.simplerow, lstView);
list.add("Cheese, apples, water");
list.add("bread, grapes, soda");
list.add("cake, oranges, milk");
lstView.setAdapter(adapter);
adapter.notifyDataSetChanged();

lstView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            for (int j = 0; j < adapterView.getChildCount(); j++)
                adapterView.getChildAt(j).setBackgroundColor(Color.TRANSPARENT);

            // change the background color of the selected element
            view.setBackgroundColor(Color.LTGRAY);

            selectedItemIndex = i;

            Intent intent = new Intent(getApplicationContext(), AnotherActivity.class);
            intent.putExtra("info", list.get(i));
            intent.putExtra("selectedTemplateIndex", selectedItemIndex);
            startActivityForResult(intent, 100);
        }
    });
}

因此,当其他活动加载时,您必须获取已发送的信息。

String contactInfo;
int selectedTemplateIndex;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_contact);

// get the contact info from the contact activity so the user can see the selected contact info
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        contactInfo = extras.getString("info");
        selectedTemplateIndex = extras.getInt("selectedTemplateIndex");
    }
.
.
.
}