Я установил ViewFlipper в своем приложении для Android, в котором будет размещаться ряд окон для отображения сообщений.Каждое окно должно соответствовать различному набору сообщений, аналогичному множеству открытых чатов.Для каждого окна я использую одно и то же представление window.xml, чтобы вывести его на экран, оно также имеет переменную для редактирования EditText.
Для справки я создаю и добавляю дочерние элементы следующим образом:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
detector = new GestureDetector(this,this);
setContentView(R.layout.viewflip);
flipper = (ViewFlipper) findViewById(R.id.viewflip);
addChild(flipper);
addChild(flipper);
}
private void addChild(ViewFlipper flip){
int index=0;
View view = getView();
if(flip.getChildCount()==0){
flip.addView(view,index);
}
else{
flip.addView(view,flip.getChildCount());
}
}
private View getView(){
LayoutInflater inflater = this.getLayoutInflater();
View view = inflater.inflate(R.layout.window, null);
return view;
}
Как видите, я в основном дублирую представление (я не уверен, что это правильный подход к моему дизайну).Поэтому, если бы я добавил что-то в функцию onCreate после добавления дочерних элементов, например
EditText messageHistoryText = (EditText) findViewById(R.id.messageHistory);
messageHistoryText.append("Testing :\n");
, я увидел бы текст в обоих окнах.
Я подумал, что что-то вроде этого будет лучше:
View v1 = flipper.getChildAt(1);
EditText messageHistoryText2 = (EditText) v1.findViewById(R.id.messageHistory);
messageHistoryText2.append("Testing2 :\n");
но когда я использую это, я вообще ничего не вижу.Возможно, есть ошибка при добавлении детей.Возможно, я не могу использовать то же представление, или, возможно, я выборочно изменяю EditText неверным способом.
Советы?