2

我编写了使用完全由 xml 定义的布局的活动,例如:

setContentView(R.layout.my_layout_defined_by_xml);

我还编写了使用完全以编程方式创建的布局的活动,例如:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    game_frame_layout = new FrameLayout(getApplicationContext());

    game_frame_layout.addView(some_view_I_made);

    setContentView(game_frame_layout);

但是我从来没有做过,也不知道怎么做,就是将两者结合起来(这甚至可以做到吗?)例如,假设我想让整个屏幕充满在 xml 中定义的按钮和视图,但希望以编程方式在某处添加一个额外的按钮。或者相反,我可能希望以编程方式创建的布局包括由 xml 定义的子布局。

我怀疑它实际上可能非常微不足道,但一个问题是我不知道如何将 layoutResID(如 R.id.my_layout_defined_by_xml)转换为布局。

4

1 回答 1

4

您可以像这样从 xml 文件创建一个 View 对象:

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflater.inflate(R.layout.your_layout_file_name, null);

反之亦然:您可以创建一个扩展 View 的类,例如 MyTextView,当您想将其包含在您的 xml 文件中时,您可以这样做:

<com.example.mypackage.MyTextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false" />
于 2012-11-29T12:36:01.370 回答