我想在应用程序中创建所有视图的实例,并且在执行过程中将适当的视图传递给Activity.setContentView() - 通过引用而不是id。 那么 - 如何正确创建视图知道它的ID?如何创建视图实例了解其ID?
附加问题: 当我将id传入Activity.setContentView时,如何创建视图实例? 每次我调用setContentView新实例创建?
问候所有
我想在应用程序中创建所有视图的实例,并且在执行过程中将适当的视图传递给Activity.setContentView() - 通过引用而不是id。 那么 - 如何正确创建视图知道它的ID?如何创建视图实例了解其ID?
附加问题: 当我将id传入Activity.setContentView时,如何创建视图实例? 每次我调用setContentView新实例创建?
问候所有
为什么要这样做?我的免责声明是,在一项活动中保留所有视图的实例是过度和不必要的。您应该将代码的功能分成多个活动,并且每个活动都有一个布局。
如果必须使用同一活动中的多视图,这种类型的行为的布局文件中可能是更好的做(把你的布局多个视图,然后显示/隐藏他们的代码)。
这就是说,你需要的是LayoutInflater
类。充气布局,并做它你想要的。如果您在此布局中查找特定视图,请在该充气布局上使用findViewByID()
方法。
LayoutInflater inflater = (LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
LinearLayout ll = inflater.inflate(R.layout.your_layout, null);
View v = ll.findViewByID(R.id.view_name);
//Do stuff with view or layout
为什么要这样做? – Yury 2011-12-24 00:20:55