用户界面-Android:onCreate()中的Listener模式



所以,我再次提出了一个非常基本的问题。我为我的无能道歉,但我想我对这些主题的教程读得很差。我的问题如下:

我想使用"监听器"模式来处理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对象的侦听器时。

相关内容

  • 没有找到相关文章

最新更新