我有一些Acitivity
带有ListView
.
我希望在单击该ListView
项目后应该有新Activity
的具有相同类型的布局包含ListView
与单击的项目相关的另一个信息(例如)。
我知道没有办法动态创建Activities
。我应该怎么做才能从一个布局转到另一个(通过单击ListView
项目)并且应该能够通过后退键返回相同的后退序列?
我有一些Acitivity
带有ListView
.
我希望在单击该ListView
项目后应该有新Activity
的具有相同类型的布局包含ListView
与单击的项目相关的另一个信息(例如)。
我知道没有办法动态创建Activities
。我应该怎么做才能从一个布局转到另一个(通过单击ListView
项目)并且应该能够通过后退键返回相同的后退序列?
您可以使用 A Fragment 来实现您的 ListView: http:
//developer.android.com/reference/android/app/ListFragment.html
然后您可以使用 FragmentManager 类和 FragmentTransation 类简单地将当前 ListFragment 替换为新的. 这样,当您按下后退按钮时,FragmentManager 将负责用旧的 ListFragment 替换新的 ListFragment。
请注意,如果您使用 ListFragment,您的 SDK 目标必须为 11 或更多。如果这对您来说是一个问题,您可以使用支持库中的 Fragment 类,在其中放置一个 ListView。FragmentManager 和 FragmentTransation 也是支持库的一部分。
我知道没有办法动态创建活动。我应该怎么做才能从一个布局转到另一个布局(通过单击 ListView 项目)并且应该能够通过返回键返回相同的反向序列?
为什么不能动态创建活动?您可以轻松地从您的 ListView onclick 监听器创建一个新的
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
//Based on the position of the clicked item create a new activity with the position id
Intent intent = new Intent(currentActivity.this, newActivity.this);
intent.putExtra("id", position);
startActivity(intent);
}
};
现在在 newActivity 中,您将通过执行检查传递的 id 是什么
Bundle bundle = getIntent().getExtras();
theId = bundle.getInt("id");
//Now do something based on that id
在新活动中按后退键应该带您回到上一个活动