我对Android中片段的正确逻辑用法有疑问。我知道它被设计用于改善平板电脑体验,但这是否意味着片段通常只能用于此目的?或者使用片段作为自定义复合视图的替代品是不是很糟糕的开发实践?
例如,我正在编写一个应用程序以保持统计。在制作得分表时,它会为ScrollView中的每个玩家创建一个“ScoreCell”,一个自定义复合控件。我想做的事情(但不看作如何作为View)处理由包含活动激活的内部OnClickListener:每个ScoreCell都有一个TextView用于玩家的名字,我想长按到startActivityForResult()弹出一个输入对话框以更改ScoreCell的名称。但是看到OnActivityResult()的方法在View中不可用,那么让每个ScoreCell成为片段是否正确?
Here is a picture of the activity to help understand the logic of what I need/am confused about
答案 0 :(得分:4)
这里有很多问题,让我来看看。
没有片段不仅仅适用于平板电脑体验,通常它们允许您创建更多模块化和适应性更强的布局(想想类)。它们在平板电脑布局/风景中非常有用,但也为您提供了可重复使用的组件。
同时,片段在这里不是正确的选择...使用listview和自定义单元格布局要容易得多。而不是使用另一个活动来显示对话框,只需调用新的Dialog()和dialog.show()。如果活动将被用户长时间使用并提供新的“活动”(动作),则该活动应仅用作对话框
答案 1 :(得分:1)
列表中的项目不应该都是它们自己的片段,不是。您可以弹出对话框而无需创建整个活动。查看对话框的AlertDialogs和DialogFragments上的documentation,您可以从中获得结果。