2011-07-26 2 views
1

ボタン上でgetX()を呼び出そうとしていますが、eclipseはボタンオブジェクトのメソッドがないことを教えています。実際には、ViewsにはgetX()もないと言っていますが、これはAPIがそうだと言ってくれたからです。 コード:そんなに直接そのようのgetX()を呼び出しカントAndroidボタンgetX()

public boolean onTouch(View arg0, MotionEvent arg1) { 
    int touchX = (int)arg1.getX(); 
    int touchY = (int)arg1.getY(); 
    int tI_1 = (int)I_1.getX(); 
    switch(touchX){ 
     case tI_1: 
      //do something    
     break; 
    } 
    return false; 
} 
+1

どのように浮動小数点値に切り替えていますか? (ie - touchX) IIRCでは、浮動小数点値を切り替えることはできません。これはgetX()を呼び出すことに関連していますか?もしそうでなければ、このswitch文のスコープはどこですか?問題の内容をさらに特定するために周辺のコードを取得できますか? – Jack

+0

ええと...なぜあなたのケースステートメントに「フロート」がありますか? – trutheality

+0

それは私の悪いことです - 実際のコードではありません。問題はここのタイプではない、私はそれをある時点でキャストしている。問題はメソッド呼び出しです。 EDIT:私が実際に持っていたコードを更新しました。 – wehweh

答えて

2

のgetX()とのgetYを(試す)がご利用いただけますAPIレベル11以降のみ。アプリケーションのAPIレベルを変更してみてください。動作する可能性があります。

+0

うん、それだった。私はレベル9を忘れていた。ありがとう! – wehweh

0

...あなたはonTouchListenerとMotionEventを設定する必要があります...このGet the co-ordinates of a touch event on Android

+0

オリジナルの投稿を更新しました。私がここでやろうとしていることは、ボタンがどこにあるのかをタッチと比較することです。また、APIによれば、どのViewオブジェクトもgetX()メソッドを持つ必要があります。 [link](http://developer.android.com/reference/android/view/View.html#getX()) ボタンはビューであり、getX()メソッドも必要です。 APIによると、 [リンク](http://developer.android.com/reference/android/widget/Button.html) – wehweh

+0

hmm ..奇妙な。おそらく、あなたは輸入品がないでしょうか?そうでなければ、あなたのコードが適切にフォーマットされているかのように思えます...あなたのonTouchListenerが適切に宣言されていることを許可しました..あなたのonCreateメソッドがどのように見えますか? –

0

getXが例外をスローする場合は、代わりにgetLeftを使用してください。

ビューのソースコード(一部):

// Added in API level 1 
public final int getLeft() { 
    return mLeft; 
} 

// Added in API level 11 
public float getX() { 
    return mLeft + (mTransformationInfo != null ? mTransformationInfo.mTranslationX : 0); 
}