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

Showing a List in another activity when clicked on an item in ListView

首先对我的英语不好感到抱歉:D

我的问题是:我有 2 个数组列表,一个用于 ListView 上的项目,另一个用于当您单击项目时它们将出现在其他 activity 中。我该怎么做?

我写了适配器,我可以在其他 activity 中显示第一个 ArrayList,但我想在其他 activity..

中显示第二个 ArrayList

这是我的第一个activity

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

这是我的第二个

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

    TextView exampleText = (TextView) findViewById(R.id.exampleText);

    Intent intent = getIntent();
    String name = intent.getStringExtra("name");

    exampleText.setText(name);

}

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

是否要将 arrayList 从一个 activity 发送到第二个 activity 并在第二个 activity 中显示到列表

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

秒Activity

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

如果需要,您可以通过存储在数据库中列出传递给另一个 activity 的值,或者存储在第一个 activity 首选项中并在第二个 activity 中获取它们,否则使用可以传递值通过额外作为 1 个答案。

You can also make you list as static and use it in another activity.

让它变得简单: 将第二个 arraylist 声明为静态并在第二个 activity.

中访问它
FirstActivity.java
publid static ArrayList<String> mMyList = new ArrayList<>();

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