2012-11-14 27 views
5

ボタンで長押しイベントを処理する方法について説明しているoneなどの記事をいくつか見てきました。私はこれらの指示に従うことができますが、それは私がクリックを処理するのと同じ方法で行うことが可能かどうか疑問に思っています。私はクリックを取り扱う方法は、次のようなXMLにハンドラを定義することでした:長押しボタンイベントハンドラ

<Button 
    android:id="@+id/btn_NextLift" 
    ... 
    android:onClick="btn_NextLiftClick" /> 

はその後のようなコードに「

public void btn_NextLiftClick(View vw_Current) 
    {...} 

私は、XMLでブールプロパティlongClickableを参照していますが、私はドンイベントハンドラをどこで定義するのか見てみましょう... ???あなたがXML経由でこれを行うことはできません

TIA JB

答えて

17

。代わりに、

Button button = (Button) findViewById(R.id.btn_NextLift); 

button.setOnLongClickListener(new OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      // TODO Auto-generated method stub 
      return true; 
     } 
    }); 

setContentView()が呼び出された後にこのコードが指定されていることを確認してください。

また、longClickableプロパティがtrueに設定されていることを確認してください。

+0

これはイライラしています。私は間違いなくsetContentViewの後にコードを設定しますが、NullRefの例外が出るように私のボタンはまだnullになります。 – GPGVM

+0

XML定義されたクリックハンドラにLongClickハンドラを追加すると、それは機能します。それは私のボタンが隠れているかのようで、イベントを起こすまで見つけることができませんか? – GPGVM

+0

質問を編集してコードを追加してください。 –

関連する問題