![](/img/trans.png)
[英]Passing an _id from one activity to another when ListView item is clicked
[英]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.