繁体   English   中英

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

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

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

我的问题是:我有2个arraylist,一个用于ListView上的项目,另一个用于当您单击项目时它们将进入其他活动。 我怎样才能做到这一点?

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

这是我的第一次活动

@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从一个活动发送到第二个活动并显示到第二个活动中的列表

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

您可以通过在数据库中存储(如果需要)来将传递值列出到另一个活动中,或者将其存储在第一个活动首选项中,然后在第二个活动中获取它们,否则使用可以通过Extras作为1个答案传递值。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM