获取按钮和文本视图的运行时引用在android中的for循环中动态生成

时间:2011-01-18 06:59:01

标签: android-layout

我使用for循环动态地在Android活动中充气自定义视图。该视图包含一个按钮数组和一个文本视图数组。单击该按钮时,将打开日期选择器对话框,该对话框已注册到单击侦听器上的按钮。我想在文本视图中设置与已单击的按钮对应的日期。请给我一些解决方案非常紧急。我无法获得在日期选择器对话框设置后要更新的文本视图的运行时引用。

1 个答案:

答案 0 :(得分:0)

好的,我知道按钮和文本视图应该以某种方式相关,对吧?那么如何扩展Button类(假设你称之为ButtonWithTextView)并包含对要与该Button关联的TextView的引用。因此,每次启动View.onClick侦听器时,您都可以将View强制转换为类并检索该TextView引用。

一个例子:

class ButtonWithTextView extends Button {
    TextView tv;
    ButtonWithTextView(Context c, TextView tv) {
        super(c);
        this.tv = tv;
    }

    TextView getAssociatedTextView() {
        return tv;
    }
}

.
.
.

//somewhere in your code

TextView tv1 = new TextView(context);
ButtonWithTextView button1 = new ButtonWithTextView(context, tv1);
button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ButtonWithTextView button = (ButtonWithTextView)v;
        TextView associatedTextView = button.getAssociatedTextView();
        .
        .
        .
    }
});