我想在应用程序中创建所有视图的实例一次,并在执行期间将适当的视图传递给Activity.setContentView() - 通过引用而不是id。 那么 - 如何正确创建知道其ID的视图?
其他问题: 将id传递给Activity.setContentView时,如何创建视图实例? 每次调用setContentView都会创建新实例吗?
尊重所有
答案 0 :(得分:0)
你为什么要这样做?我的免责声明是,在一项活动中保留所有观点的实例是过分且不必要的。您可能应该将代码的功能分成多个活动,并且每个活动都有一个布局。
如果你必须在同一个活动中使用多个视图,这种行为可能在你的布局文件中做得更好(在你的布局中放置多个视图,然后在你的代码中显示/隐藏它们)
话虽这么说,你需要的是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