单击 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 );
首先对我的英语不好感到抱歉: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 );