Я создаю версию популярной игры Minesweeper для Android. Я пытаюсь программно создать кнопку и добавить ее в RelativeLayout. Я нашел что-то очень похожее здесь: How do I programmatically add buttons into layout one by one in several lines?Создайте кнопку и добавьте ее в вид программно
Когда я пытаюсь запустить его я получаю NullPointerException в:
RelativeLayout layout1 = (RelativeLayout) findViewById(R.layout.game);
Вот весь блок кода:
public void create() {
RelativeLayout layout1 = (RelativeLayout) findViewById(R.layout.game);
for(int i = 0; i < gridSize; i++) {
if(grid[i] == 0) { //if grid pos. indicates an empty cell
Button empty = new Button(this);
empty.setBackgroundResource(R.drawable.emptybutton); //set background to empty
empty.setId(i); //set id to value of i
empty.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
layout1.addView(empty); //add the button to the relativeLayout view
//((Button) findViewById(i)).setOnClickListener(emptyListener);
}
Заранее спасибо для любых ответов
Я думаю, что ваша проблема не может достичь вашей игры.xml. можете ли вы предоставить свою структуру (план), пожалуйста? – guness
Я использую массив ints для имитации поля тральщика. например, значение 9 в позиции [2] указывает на наличие шахты в позиции 2 в поле тральщика. то я использую инструкции if для создания разных кнопок. Если кнопка, представляющая мишу, будет создана, если позиция [2] == 9. Я пытаюсь добавить эти кнопки в относительный макет, который будет представлять поле теневого кружка. это помогает? – DanielFitzgerald123