2011-01-27 19 views
0

を呼び出されません私は、GridViewのを持っているのLinearLayoutを持っている:onDraw、onmeasureは

public class ParentClass implements OnClickListener , OnFocusChangeListener 
{ 

//instance variables. 
//constructors. 
//initialization method: 

public initMethod() 
{ 
    //initializes gridview , set adapters, listeners etc. 
    //+ code for adding gridview to linear layout etc. 
} 
//other methods 
... 
} 
class Grid extends ViewGroup{ 

     private GridView _gridView = null;  
     Grid() 
     { 
     super(MyActivity); 
     //code for grid-view initialization goes here 
     } 

     public void setAdapter(GridViewAdapter gridViewAdapter) { 
      // TODO Auto-generated method stub 
      _gridView.setAdapter(gridViewAdapter); 

     } 

     @Override 
     protected void onDraw(android.graphics.Canvas canvas) { 
      super.onDraw(canvas); 


     } 
     @Override 
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
     { 
      super.onMeasure(widthMeasureSpec, heightMeasureSpec); 

     } 

     @Override 
     protected void onLayout(boolean changed, int l, int t, int r, int b) { 
      // TODO Auto-generated method stub 
      int i = 0; 
     } 
    } 
} 

今、私は私のグリッドクラスのオーバーライドされたメソッドでbreakpintを入れたときに、それがヒットする必要があることを期待して!ブレークポイントがヒットしないのはなぜですか?ここに何か根本的なものがないのですか? 、グリッド)をインスタンス化が、レイアウトに追加されていない、したがって、それはあなたのビュー階層の一部を形成したことがない、ので、何もそれはonLayout(の呼びかけないだろうして、質問ごとにコメントとして

+0

「グリッド」クラスは実際にどのように使用されていますか?グリッドインスタンスは実際にインスタンス化され、親ビューにいつでも追加されますか? –

+0

はい親クラスがonclicklistenerを実装しているのを見て、グリッドビュー内のアイテムを見ることができます。また、オーバーライドされたメソッドonclickは、UIのGridviewのアイテムをクリックするとヒットします。私は、グリッドのクラスをインスタンス化アダプタを設定するために呼び出すところで、私はすべてのアイテムを持っているアダプタセットを取得し、クラスがインスタンス化されることを、デバッグモードで見ることができますが、グリッドクラスのoverddienメソッドは呼び出されません。 –

+0

@ con_9あなたは親クラスでsetcontentview(Grid)を使用していますか? 「; layout.addView(グリッド);グリッドグリッド=新しいグリッド(コンテキスト)」 –

答えて

0

など

は、Aは、参照、GridViewのインスタンスが含まれていGrid._gridViewで、は、したがって、レイアウト、混乱に追加されますでした。

GridクラスがGridViewを含むのではなく、GridViewを拡張している可能性があります。

+0

うん!ありがとう.... –

関連する問題