2011-08-31 68 views
0

確定首先對不起,如果它是一個愚蠢的問題,但我有ADHD和我的頭會在閱讀了大量無用的細節後爆炸,我只想一個小而清晰的例子,我會預測其餘的!Java事件監聽與AS3相比

基本上我正在玩Android SDK,並認爲它類似於Adobe Flex,並且一切都很順利,直到我試圖聽按鈕單擊。

在AS3:

private function onAddedToStage(event:Event):void 
{ 
    myButton.addEventListener(MouseEvent.CLICK,handleClick); 
} 

private function handleClick(event:MouseEvent):void 
{ 
    trace("You clicked: " + event.currentTarget.name); 
} 

我所用試錯迄今所做的:

private Button _okButton; 
private EditText _name; 
private View _view; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Log.d("trace", "it works!"); 

    _view = getCurrentFocus(); 
    _name = (EditText) _view.findViewById(R.id.editText1); 
    _okButton = (Button) _view.findViewById(R.id.button1); 

    _name.setText("Yupee I found it!"); 

    OnClickListener l = new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Log.d("trace", "Button clicked"); 
     } 
    }; 

    _okButton.setOnClickListener(l); 
} 

上面的代碼的應用程序崩潰提前

感謝。

+0

看看logcat並報告你的堆棧跟蹤 – Snicolas

回答

1

用這個替換_view。

+0

哇!有效! 奇怪的是,如果我評論它的作品聽力部分(我可以訪問EditText)......至少我可以繼續前進。 非常感謝。 – Ammarz

+0

重要的是你的活動本身持有它的小部件。我從來沒有見過getFocusView。開始android開發的一個很好的參考是anddev book。 – Snicolas

+0

onCreate是一種Activity的方法,可能是您在此課程上所做的擴展。我通常甚至不會在活動中使用上下文(或查看等)前置findViewById。但正如Snicolas所說,替換_view,你是金。 – ryandlf