单击ListView中的项目时在另一个活动中显示列表

时间:2018-09-22 15:55:52

标签: java android listview arraylist android-arrayadapter

首先对我的英语不好,如果抱歉:D

我的问题是:我有2个arraylist,一个用于ListView上的项目,另一个用于当您单击项目时它们将进入其他活动。我该怎么办?

我写了适配器,我可以在其他活动中显示第一个ArrayList,但我想在其他活动中显示第二个Arraylist。

这是我的第一次活动

Error using struct
Conversion to struct from double is not possible.

这是我的第二个

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

    ListView listView = (ListView) findViewById(R.id.listMahluk);

    final ArrayList<String> list1= new ArrayList<String>();

ArrayList<String> list2 = new ArrayList<String>();

ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.list_white_text, list1);
    listView.setAdapter(arrayAdapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(getApplicationContext(), MahlukdetayActivity.class);
            intent.putExtra("name", list1.get(position));
            startActivity(intent);
        }
    });
}

通过这种方式,我可以显示list1,但我想显示list2而不是list1。

3 个答案:

答案 0 :(得分:0)

您想将arrayList从一个活动发送到第二个活动,并显示到第二个活动中的列表

ArrayList<String> list = new ArrayList<String>();

Intent intent = new Intent(this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("list",list);
intent.putExtras(bundle);       
this.startActivity(intent);

第二次活动

Bundle bundle = getIntent().getExtras();
ArrayList<String> list = bundle.getParcelableArrayList("list");

答案 1 :(得分:0)

如果需要,您可以通过存储在数据库中列出传递值到另一个活动,或者将其存储在第一个活动首选项中,然后在第二个活动中获取它们,或者使用可以将附加值传递给另一个活动。

  

您还可以将其列为静态列表并在其他活动中使用。

答案 2 :(得分:0)

简单点: 将第二个arraylist声明为静态,并在第二个活动中对其进行访问。

FirstActivity.java
publid static ArrayList<String> mMyList = new ArrayList<>();

SecondActivity.java
//access 
System.out.println("My List : "+FirstActivity.mMyList );