从ListView启动活动,然后启动下一个活动

时间:2017-12-31 15:02:21

标签: android listview android-activity next

所以我有一个ListView的练习,当我点击一个项目时,我去了Detail.java活动,我显示了练习的信息,但是我在底部有一个按钮,可以进入下一个练习。如果不创建详细的许多活动,我们有任何想法。

3 个答案:

答案 0 :(得分:0)

您可以使用包含所需参数的包启动Detail活动,在此示例中为下一个练习的ID。

Intent mIntent = new Intent(this, Detail.class);
Bundle mBundle = new Bundle();
mBundle.putInt("id", theIdOfNextExercise);
mIntent.putExtras(mBundle);
startActivity(mIntent);

然后,在启动的Detail活动中,您可以通过以下方式读取参数:

int exerciseId = getIntent().getExtras().getInt("id", 0);

然后在详细信息活动中显示与该练习相关的详细信息。 我已将默认值设置为0,因此如果exerciseId> 0你有要显示的练习的ID。

  

Bundles对所有原始类型,Serializables和Parcelables都有“get”和“put”方法。使用带有putInt / getInt的整数只是一个例子。

答案 1 :(得分:0)

你可以使用bundle来保存你的练习的id,而不是把它捕捉到你调用的活动......我建议你使用片段,它更难,但它最聪明,更多用户友好

答案 2 :(得分:0)

据我所知,你给出的信息是: 您可以使用您的对象应实现的Serializable和Parcelable Interface在活动之间传递对象

Using Serializable and Parcelable instructions

  

下一步将数据从主要活动传递到详细活动

使用可序列化

ArrayList<ModelClass> yourModelList= new ArrayList<Model>();
intent.putExtra("modelList", yourModelList);
  

检索数据

ArrayList<ModelClass> modelList= (ArrayList<ModelClass>).getIntent().getSerializableExtra("modelList");

使用parcelable

Intent intent = new Intent(this,Detail.class);
intent.putParcelableArrayListExtra("modelList", modelList);
startActivity(intent);
  

在Detail.java活动中检索数据

ArrayList<ModelClass> modelList= getIntent().getParcelableArrayList("modelList");

此外我强烈建议你使用Fragment,因为一旦你开始通过你的arraylist从一个活动迭代到另一个活动ID和其他东西,它会变得混乱 希望这会有所帮助;)