Добавление BoardView расширяет класс View до линейного макета - PullRequest
0 голосов
/ 08 мая 2018

Как добавить представление в 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 голосов
/ 08 мая 2018

Чтобы добавить представление внутри ViewGroup, сначала нужно иметь ViewGroup в Activity.
Так что имейте ViewGroup в xml Деятельности.

<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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...