2013-06-01 4 views
0

Я добавил в него LinearLayout и TextView. Теперь я должен добавить фон, отформатировать их согласно моему требованию. Поэтому у меня есть несколько вопросов. Вот мой код:Динамическое добавление свойств макета

LinearLayout parentLayout = (LinearLayout) findViewById(R.id.master); 
LinearLayout Linear1 = new LinearLayout(this); 
Linear1.setOrientation(LinearLayout.HORIZONTAL); 
Linear1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 
     LayoutParams.MATCH_PARENT)); 
Linear1.setId(1); 
TextView tvLeft = new TextView(this); 
tvLeft.setText("Hello"); 
tvLeft.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 
     LayoutParams.WRAP_CONTENT)); 
Linear1.addView(tvLeft); 
parentLayout.addView(Linear1); 

У меня есть несколько вопросов:

  • Как я могу добавить Drawable ресурс как мой фон?

Я попытался это:

Linear1.setBackgroundResource(getResources().getDrawable(R.drawable.gradient_pink)); 

я получаю сообщение об ошибке компилятором как:

Метод setBackgroundResource (INT) в тип View не применяется для аргументов (Доходный)

  • Как получить доступ к элемент, id которого задан прагматически?
  • Как установить width = 0dip?

Пожалуйста, помогите мне с этими вопросами.

ответ

2

Попробуйте

Linear1.setBackgroundResource(R.drawable.gradient_pink); 

или

Linear1.setBackgroundDrawable(getResources().getDrawable(R.drawable.gradient_pink)); 

Как получить доступ к элементу, идентификатор устанавливается прагматично?

с findViewById(yourid) сам

+0

SETID принимает только целые числа. Я написал setId (1), что я должен писать в findViewById? – NewUser

+0

findViewById также принимает int только ... вы должны дать 'findViewById (1)' – Pragnani

+0

Я стараюсь установить width = xdp/height = ydp .. Пожалуйста, помогите здесь .. – NewUser

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