2014-09-14 4 views
0

Я пытаюсь установить ресурс, пригодный для рисования, в качестве фона для моего основного относительного макета через java, но всякий раз, когда я это делаю, мое приложение падает.Ошибка приложения при настройке фона фона

Вот часть кода, который не работает нормально:

public class GameActivity extends Activity { 

    RelativeLayout layout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     layout = (RelativeLayout) findViewById(R.layout.activity_game); 
     setContentView(R.layout.activity_game); 
     layout.setBackgroundResource(R.drawable.image); 

    } 

} 

Любая идея? Заранее спасибо

+0

Можно ли отправить трассировку стека? – Jimmy

ответ

2

Помните, что вы пытаетесь найти мнение по идентификатору, но то, что вы делаете на самом деле пытаетесь раздуть макет неправильного way.Change R.layout.activity_game к R.id.activity_game и убедитесь, что относительная компоновка givent в

android:id = "@+id/activity_game" 

полный код должен быть

public class GameActivity extends Activity { 

RelativeLayout layout; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_game); 
    layout = (RelativeLayout) findViewById(R.id.activity_game); 
    layout.setBackgroundResource(R.drawable.image); 
} 

} Надеюсь, что это helps.Happy кодирования.

+0

Отлично, спасибо большое, это сработало: D – pitazzo

3

вызовов findViewById() только после setContentView() и поставить идентификатор в R.id (а не R.layout), так что он может вернуть что-то другое, чем null.

+0

Да, хорошая идея, и это должно было быть частью проблемы, но не работает, продолжает сбой – pitazzo

+1

Также findinng для 'R.layout. *' Не будет работать. – laalto

Смежные вопросы