2015-11-12 21 views
0

сгенерировать TextViews так:Ошибка при настройке полей программно на генерируемой TextView

TextView myView = new TextView(this); 
    myView.setText(Html.fromHtml(myString)); 
    linearLayout2.addView(myView); 

Когда я изменить этот код, чтобы это установить поля:

TextView myView = new TextView(this); 
    myView.setText(Html.fromHtml(myString)); 
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)myView.getLayoutParams(); 
    params.setMargins(20, 0, 0, 0); 
    myView.setLayoutParams(params); 
    linearLayout2.addView(myView); 

Я получаю эту ошибку:

Невозможно начать деятельность ComponentInfo {com.example./com.example.Activity}: java.lang.NullPointerException: Попытка вызвать виртуальный метод 'недействительным android.widget.LinearLayout $ LayoutParams.setMargins (интермедиат, Int, Int, целое)' на ссылку нулевой объект

Как я могу получить избавиться от этой ошибки?

Спасибо.

+0

вы должны создать новые LinearLayout.LayoutParams (LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT) вместо того, чтобы их с точки зрения. –

ответ

1

проблемы в линии

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)myView.getLayoutParams(); 

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

В качестве альтернативы вы можете создать свои собственные параметры макета и назначить их для своего вида. как этот

LinearLayout.LayoutParam params= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT) 
1

вы можете начать передачу экземпляра LayoutParams, когда вы добавите TextView. Например.

linearLayout2.addView(myView, new 
     LinearLayout .LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); 
4

вы должны создать new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)

вместо того, чтобы их с точки зрения.

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