Android:点击时如何从Button获取文本?

时间:2010-11-05 13:24:51

标签: android button android-widget

for(i = 0; i< 26; i ++){

        btnAlpha[i] = new Button(this);
        btnAlpha[i].setBackgroundColor(Color.TRANSPARENT);
        btnAlpha[i].setTextColor(Color.GREEN);
        btnAlpha[i].setText(Character.toString ((char)(j+i)));
        btnAlpha[i].setOnClickListener(new View.OnClickListener(){              
            public void onClick(View v){
            //Want to get the text from the current button.
                             btnAlpha[i].getText();
                            //But it gives error that "i" cannot be accessed.

        }});

我得到的错误是“不能引用在不同方法中定义的内部类中的非最终变量”。但我需要在正确的时间得到文本。怎么做?还有其他办法吗? 请帮助!

2 个答案:

答案 0 :(得分:14)

Button是View的子类,因此onClick的参数v是被单击的Button。尝试

public void onClick(View v) {
    ((Button) v).getText();
}

答案 1 :(得分:0)

在for循环中创建一个新变量final int x = i;,并使用x代替i方法中的onClick

编辑:实际上我不确定这是否会正常工作。哎呀。 Kype P的答案看起来很不错。