2011-01-31 18 views
0

コントローラのコンテナをレイアウトに追加しました。追加され[email protected] ビュー :ZoomButtonsControllerが動作しません

java.lang.RuntimeException:私は(タッチイベント中)(真)controller.setVisibleを呼び出そうとすると、私はこの例外を取得しますが、それはすでにここ 親

を持っているコントローラ追加するコードです:タッチイベントを処理するために

final TextView xView = (TextView)findViewById(R.id.xView); 
final ZoomButtonsController controller = new ZoomButtonsController(xView); 
ViewGroup zoomControlContainer = controller.getContainer(); 
LinearLayout layout = (LinearLayout) findViewById(R.id.parent_layout); 
layout.addView(zoomControlContainer); 
controller.setAutoDismissed(true); 

コード:

xView.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      controller.setVisible(true); 
      return false; 
     } 
    }); 

コンテナを追加しないと、controller.setVisible(true)は効果がありません。すべてのポインタ?

答えて

0

this questionを見てください。Mark Murphyは、あなたが何をすべきかを説明するうえで、また問題がまだ残っている場合にどのようにデバッグするべきかを説明します。

+0

ニックが、私はそれを試してみました。しかし、コンテナを追加しようとするとこのエラーが発生します。 01-31 14:11:04.734:ERROR/AndroidRuntime(670):java.lang.IllegalStateException:指定された子には既に親があります。子の親で最初にremoveView()を呼び出す必要があります。 コンテナを追加せずにcontroller.setVisible(true)だけを呼び出すと、何も表示されません。私が気づいた変なことは、controller.setVisible(true)を呼び出すと、onTouchはまったく呼び出されないということです。 – singhspk

+0

私のテキストビューはスクロールビューにあり、私はテキストビューでコントローラを初期化しています。代わりにスクロールビューでコントローラを初期化すると、私はそれを見ます。しかし、ズームコントロールはクリックできません。 – singhspk

0

thisthisをご覧ください。

なぜあなたは使用していけない:

mapView = (MapView) findViewById(R.id.mapview); 
mapView.setBuiltInZoomControls(true); 
関連する問題