所以,我再次提出了一个非常基本的问题。我为我的无能道歉,但我想我对这些主题的教程读得很差。我的问题如下:
我想使用"监听器"模式来处理GUI上的按钮按下。我相信onClickListener是我需要用来处理这些按钮按下的。但是,我不确定是否应该创建和处理在onCreate方法中创建GUI之后发生的事件。以下代码在我的一个活动的onCreate方法中:
View.OnClickListener upDownListener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(v == (upOneButton))
{
Log.d("OptionSelect", "Up One Button Pressed.");
ops.getOptionList().get(0).incrementProbability(4);
} . . .
这个被调用的方法用不同的数字更新一些GUI文本。它正在被调用,但GUI没有响应。我想这与我试图在onCreate方法中使用它有关。
简而言之,在GUI中处理用户事件的一种好而简单的方法是什么?这种方法应该在哪里发生?
非常感谢。
EDIT:Log.d()实际上被调用了。此外,ops是OptionSelect类型的对象,它恰好是进行onCreate()调用的类的类型。这会成为一个问题吗?此外,这里还有增量概率()的方法:
public void incrementProbability(int numberOfOptions)
{
probability += (numberOfOptions - 1);
if(probability > 100)
{
Log.i("OptionSelect", "Exceeded Maximum by " + (probability - 100));
probability = 100;
}
}
此外,以下是我应该包含的相关代码,在onClick()方法结束时更新我的GUI:
private void refreshDisplay(TextView a, TextView b, TextView c, TextView d)
{
a.setText(getOptionList().get(0).getProbability() + "");
b.setText(getOptionList().get(1).getProbability() + "");
c.setText(getOptionList().get(2).getProbability() + "");
d.setText(getOptionList().get(3).getProbability() + "");
a.invalidate();
b.invalidate();
c.invalidate();
d.invalidate();
}
感谢到目前为止的帮助!
我个人更喜欢让我的Activities实现监听器接口,并向Activity本身添加一个onClick方法,例如…
public class MyActivity extends Activity
implements View.OnClickListener {
...
@Override
public void onClick(View v) {
...
}
}
然后我就用。。。
myGuiObject.setOnClickListener(this);
每当我想将该方法设置为任何GUI对象的侦听器时。