所以,我再次,問一個非常基本的問題。我爲自己的不適感到抱歉,但我想我很少閱讀關於這些主題的指導教程。我的問題如下:Android:聽衆模式內onCreate()
我想使用「偵聽器」模式來處理我的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中處理用戶事件的好方法和簡單方法是什麼?
非常感謝。
編輯:Log.d()確實被調用。另外,ops是OptionSelect類型的對象,它恰好是進行onCreate()調用的類的類型。這會成爲一個問題嗎?此外,這裏是incrementProbability()方法:
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();
}
感謝您的幫助!
我不認爲這是你的聽衆/處理程序的問題,但事實上,你更新UI的方式,你的Log.d調用得到執行嗎? – Jodes 2011-05-22 18:56:19
你能發佈更多的周邊代碼嗎?什麼是'ops'?它是什麼類型?在哪裏修改? 'incrementProbability'是否觸發UI偵聽的任何「改變」事件,以便它可以更新? – adamp 2011-05-22 19:07:09