2013-05-23 2 views
-1

Зачем этот код может разрушить мое приложение для Android?любая возможная причина Почему этот код разбился под Android?

TextView txt_EnrollmentType = (TextView)findViewById(R.id.enrollmenttype); 
String s1 = getResources().getString(R.string.enrollmenttype_value) ; 
EnrollmentType.setVisibility(View.VISIBLE); 
txt_EnrollmentType.setText(s1+ " "); 

Я уверен, что присутствует R.id.enrollmenttype. поэтому txt_EnrollmentType не является нулевым.

Herer это ошибки на LogCat https://www.dropbox.com/s/r2fterr2hvi28/log.txt

+0

Что говорит журнал сбоев? – stinepike

+4

txt_EnrollmentType is null – Blackbelt

+0

вид доступен, – DrDree

ответ

1

Вам нужно раздувать layout, содержащий Views, прежде чем пытаться получить доступ к ним или они будут null. Сделайте это либо с помощью layout inflater, либо чаще с setContentView(), как показано ниже. Это может быть сделано в других местах, но чаще всего используется в onCreate() или onResume()

public void onCreate(Bundle bundle) 
{ 
    super.onCreate(bundle); 
    setContentView(R.layout.your_layout_file); // layout file containing the views minus the .xml extension 

Views Ваше существование внутри layout поэтому они null, пока вы inflatelayout. Вы должны сделать это, прежде чем пытаться инициализировать их чем-то вроде

TextView txt_EnrollmentType = (TextView)findViewById(R.id.enrollmenttype);  
+0

Какой макет я должен добавить? Тот, который содержит TextVIEW? – DrDree

+0

Да , тот, у которого есть «Просмотры», который вы хотите отобразить на экране – codeMagic

+0

Могу ли я установить два setContentView на одном OnCreate? – DrDree

0

Строка s1 является статическим, то есть лучше добавить строку в файл макета XML, под TextView

android:text="@string/enrollmenttype" 

Go затмить/Окна/показать вид/LogCat открыть LogCat ..

+0

Я могу добавить его в любой макет? – DrDree

+0

Уверен, но не затрагивает вопрос вообще. –

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