2013-09-30 4 views
0

Я просто хочу изменить атрибут макета span textview (называемый t), чтобы он охватывал 2 столбца внутри таблицы. Я использую кодСтолбцы столбца вызывает NullPointerException

TextView t = new TextView(WineActivity.this); 
t.setTextSize(15); 
TableRow.LayoutParams params = (TableRow.LayoutParams) t.getLayoutParams(); 
params.span = 2; 
t.setLayoutParams(params); 

Довольно misteriously для меня, вторая строка кода генерирует NullPointerException. Кто-нибудь знает, почему?

+0

Пожалуйста, покажите свой XML. –

+0

textview не объявляется в XML, но одна строка перед ним с TextView t = new TextView (WineActivity.this); – splinter123

+0

Добавьте точку останова в этой строке кода, проверьте, есть ли значение 't', когда оно проходит через изменение диапазона. Он не может быть создан к моменту запуска кода; поэтому, нажав на возврат Null. –

ответ

0

"params" - null.

Я предполагаю, что t.getLayoutParams, вероятно, тоже нулевой, но просмотр большего кода поможет нам.

+0

Я добавил две строки, но любая другая часть кажется не такой уж важной для меня. Сразу после того, как я установил текст текстового поля и добавлю его в строку таблицы. Все это в части PostExecute AsyncTask ... – splinter123

0

Проблема заключается в том, что вы вызываете (TableRow.LayoutParams) t.getLayoutParams(); но t не создает LayoutParams, пока программа не будет запущена и покажет страницу.

Простейшее решение - это просто создать новые параметры самостоятельно.

TableRow.LayoutParams params = new TableRow.LayoutParams(); 
params.span = 3; 
row.setLayoutParams(params); 
Смежные вопросы