текст не изменяется в TextView при выполнении разметки макета - PullRequest
0 голосов
/ 18 ноября 2011

в моем приложении, когда загружается действие, я делаю следующее

setContentView(R.layout.main2);
layoutToAdd = (LinearLayout) findViewById(R.id.linearLayout1);

for(i=0; i<num;i++)
{
    LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
    View view = inflater.inflate(R.layout.camera, null);
    layoutToAdd.addView(view);
}

Значение num отличается для каждого раза.

В моем макете LayoutInflater у меня есть текстовое представление, редактирование текста и кнопка.

Теперь они отображаются в соответствии с количеством раз, упомянутых в num, теперь каждый раз, когда я хочу, чтобы текст и название кнопки менялись. Как установить текст для TextView и Button.

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011

Просто установите их после раздувания макета

View view = inflater.inflate(R.layout.camera, null);
TextView tv = view.findViewById(R.id.textviewid); //id defined in camera.xml
Button b = view.findViewById(R.id.buttonid);      //id defined in camera.xml
tv.setText();
b.setText();
layoutToAdd.addView(view);
0 голосов
/ 18 ноября 2011

Вы должны сохранить ссылку на раздутое представление и сохранить в списке, а затем, когда вы хотите изменить, просто list.get (2) .findViewById (R.id.textbox_id).

Надеюсь, это поможет.

0 голосов
/ 18 ноября 2011

Что я предлагаю, вы должны создать XML-файл, содержащий только LinearLayout.

Затем программно вы должны создать TextViews, EditTexts и Buttons и добавить их в LinearLayout.

Вы можете установить различные свойства этих компонентов, как показано ниже:

Вот пример настройки свойств TextView. Для остальных компонентов вы можете установить то же самое.

TextView tv=new TextView(context);
tv.setBackgroundResource(R.drawable.textview_bg);
tv.setPadding(20, 5, 40, 5);
tv.setText("set your text");
tv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setTextColor(Color.RED);
tv.setClickable(true);
tv.setId(id);//where id is an integer which should be unique for each TextView

layout.addView(tv); 

Также вам нужно создать и добавить все эти три компонента внутри цикла for, предоставляя уникальные идентификаторы в зависимости от того, что вы используете для итерации цикла! И вы можете иметь массив String для текстовых представлений и кнопки для установки их имен для цикла for , что было бы проще для вас передать строку, которую вы хотели бы установить для них в цикле.

...