我想知道当你想要显示另一个屏幕时,为什么人们会继续推荐开始新的活动?
假设我想显示一个带有标签的屏幕和一个edit_text来询问用户名,然后是另一个类似的屏幕询问年龄,然后是另一个屏幕来显示输入的数据并要求确认。
我这样做了:
main_layout.xml: has a button let's say mainButton, onClick="startRegistration"
name_layout.xml: edittext asking for name
age_layout.xml: edittext asking for age
confirm_layout.xml: display info + button to confirm
并在:
public class MainActivity extends Activity {
onCreate(...) {
...
setContentView(R.layout.main_layout);
}
public void startRegistration(View clickedButton) {
setContentView(R.layout.name_layout);
}
..
}
...依此类推,所有按钮处理程序都是主类中的公共void方法,每个方法都包含setContentView()
,下一个布局作为参数。
我觉得这是一种糟糕的编程风格,但它的工作原理非常好。这样做可以吗?如果没有,还有其他简单方法吗?为这样的事情开始新的活动对我来说真的很愚蠢。
答案 0 :(得分:0)
通常,您会在“活动”中将“活动”组合在一起。对您而言,注册使用多个屏幕但相互链接。我建议在ViewFlipper中使用1个Activity。
为所有人提供1个活动将搞砸用户的导航。必须特别处理Back键。 “如果返回键,请设置此内容,否则设置此内容等”
答案 1 :(得分:0)
如果您为同一类型的屏幕编码不同的布局,那么它并不是一个理想的想法。更好的想法是具有相同的布局并指向布局相同的类中的相同布局。在您希望拥有额外/更少控制或不同控制的屏幕中,只需拥有此类控件的唯一ID即可。
从ID中引用控件,您将拥有一个布局文件。编写控件相同的不同布局类将为代码重复铺平道路,因此不是理想的编码方式。