添加BoardView将View类扩展为线性布局

时间:2018-05-08 16:27:42

标签: java android xml android-layout

如何向LinearLayout添加视图?我有一个名为BoardView的类,它扩展了View,我想将它添加到LinearLayout。我的代码如下所示:

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

  board = new Board();
  boardView = new BoardView(this, board);
  board.addObserver(boardView);
  setContentView(boardView);
}   

我试过这样的事情:

LinearLayout boardgame = (LinearLayout)  findViewById(R.id.boardgame);
linBoardGame.addView(boardview);
setContentView(boardgame);

遗憾的是,这会返回NullPointerException。 添加

的例外情况
<com.example.abc.def.BoardView  
android:id="@+id/view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>

到game_activity.xml文件。

1 个答案:

答案 0 :(得分:0)

要在ViewGroup中添加视图,您首先必须在活动中拥有ViewGroup 所以在Activity的xml中有一个ViewGroup

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content"
android:id="@+id/boardgame"
>



</LinearLayout>

然后将视图添加到ViewGroup

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.actity_layout);
    board = new Board();
    boardView = new BoardView(this, board);
    board.addObserver(boardView);
    LinearLayout boardgame = (LinearLayout)  findViewById(R.id.boardgame);
    linBoardGame.addView(boardview);
}