我有一些Acitivity
ListView
。
我希望在点击ListView
项后,应该有新的Activity
,其布局类型相同,包含与所点击的项目相关的其他信息(例如ListView
)。
我知道无法动态创建Activities
。
我应该怎样做才能从一个布局转到另一个布局(通过点击ListView
项目),并且应该能够通过后退键返回相同的后序列?
答案 0 :(得分:0)
我知道没有办法动态创建活动。 我该怎么做才能从一个布局转到另一个布局(通过 单击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
按下新活动的后退键可以带您回到上一个
答案 1 :(得分:0)
您可以使用A Fragment来实现ListView:
http://developer.android.com/reference/android/app/ListFragment.html
然后你可以使用FragmentManager类和FragmentTransation类简单地用新的ListFragment替换当前的ListFragment。这样,当您按下后退按钮时,FragmentManager将负责用旧的ListFragment替换新的ListFragment。
请注意,如果您使用ListFragment,您的SDK目标必须是11或更多。如果这是您关注的问题,您可以使用支持库中的类Fragment将ListView放入其中。 FragmentManager和FragmentTransation也是支持库的一部分。