метод setText () не отображает правильный текст в пользовательском представлении [ANDROID]

У меня есть пользовательский класс представления, состоящий из 2 textviews, и отдельный пользовательский класс адаптера.
В классе custom view у меня есть метод для установки текста 2 textviews с реализацией :

public class CompoundView extends LinearLayout {

private TextView versionNameView;
private TextView versionNumberView;
private Context mContext;

public CompoundView(Context context, AttributeSet attrs) {
    super(context, attrs);
    mContext=context;
    TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.ColorOptionsView, 0, 0);
    String titleText = a.getString(R.styleable.ColorOptionsView_titleText);

    int valueColor = a.getColor(R.styleable.ColorOptionsView_valueColor,getResources().getColor(android.R.color.holo_blue_light));
    a.recycle();

    setOrientation(LinearLayout.VERTICAL);
    setGravity(Gravity.CENTER_VERTICAL);

    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rootView =  inflater.inflate(R.layout.view_color_options, this, true);
    versionNameView = (TextView) this.findViewById(R.id.list_item_title);
    versionNumberView = (TextView) this.findViewById(R.id.list_item_content);

}

public CompoundView(Context context) {
    this(context, null);


}

public void setTexts(String text1,String text2) {
    versionNameView.setText(text1);
    versionNumberView.setText(text2);
} 
}

и в моем пользовательском адаптере, внутри переопределенного раздела метода getView (), я реализовал :

...
CompoundView customView = new CompoundView(yContext);
customView.setTexts("Test1","Test2");
...

И когда я запускаю приложение, текст в пользовательском интерфейсе показывает его исходное значение (тот, который первоначально объявлен в XML вместо того, который программно объявлен).
Однако, если я попытаюсь сделать versionNameView.getText()и versionNumberView.getText()внутри пользовательского представления, logcat показывает правильно обновленное значение.
Итак, какие шаги я должен сделать для того, чтобы обновленный текст был правильно показан в пользовательском интерфейсе?

1 ответ

  1. Мне удалось заставить его работать.
    Вместо создания объекта представления, я должен использовать операцию findViewById()для ссылки на существующее созданное пользовательское представление в XML-файле.