2012-08-15 57 views
1

我有一些AcitivityListView我应该如何使用相同的布局创建活动?

我希望在点击ListView项目后,应该有新的Activity,相同类型的布局包含与点击项目相关的其他信息(例如ListView)。

我已经知道没有办法动态创建Activities。 我应该怎么做才能从一个布局转到另一个布局(通过点击ListView项目),并且应该能够通过后退按照相同的后退顺序返回?

回答

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一个新的你会检查什么是做

 Bundle bundle = getIntent().getExtras(); 
     theId = bundle.getInt("id"); 

      //Now do something based on that id 

按上从新活动返回键传递的ID应该带你回到前一个

+0

每一个下一个活动必须与前一个活动相同。 onItemclicks上有(未定义)数量的未定义数量。 – Andrew 2012-08-15 19:17:54

+0

这是更好的:Intent intent = new Intent(currentActivity.this,currentActivity.class); – Andrew 2012-08-15 20:27:50

0

您可以使用一个片段实现您的ListView:
http://developer.android.com/reference/android/app/ListFragment.html
那么你可以简单地[R通过使用FragmentManager类和FragmentTransation类将当前的ListFragment替换为新的ListFragment。通过这种方式,当您按下后退按钮时,FragmentManager将负责用旧的替换新的ListFragment。
请小心,因为如果您使用ListFragment,您的SDK目标必须是11或更多。如果这是您的担忧,您可以使用支持库中的类Fragment将其放入ListView中。 FragmentManager和FragmentTransation也是支持库的一部分。

相关问题