2011-07-12 17 views
0

は、私が何をしようとしているの単純化されたコードの例です:?カスタムViewFlipperは機能しませんか?ここ

public class main extends Activity { 

    public myFlipper flipper; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     flipper = (myFlipper) findViewById(R.id.viewFlipper1); 
    } 

    class myFlipper extends ViewFlipper 
    { 

     public myFlipper(Context context) 
     { 
      super(context); 
      // TODO Auto-generated constructor stub 
     } 

    } 

} 

Javaは、私がこれを行うにしようとすると、私が間違って何をやっているClassCastExceptionがスローされますか

答えて

0

私はそれを興味のある人に分かりました。

カスタムビュークラスでレイアウト属性を使用できるコンストラクタを追加する必要があります。同様に:

public myFlipper(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

また、Cristianの例も必要です。そして、それが動作するはずです:)

0

あなたもXMLにカスタムビューを宣言する必要があります。

<view class="your.package.main$myFlipper" 
    android:layout_width="fill_parent" 
    etc. 
/> 

余分なアドバイスを:クラスは、大文字の最初の文字で宣言する必要があります。

+0

私のXMLは次のようになります。、EclipseにはXMLにエラーがあり、ビルドができないという。 –

+0

私の答えを編集しました...それが動作するかどうか教えてください。 – Cristian

+0

これはInflateExceptionをスローします:/私は、属性(layout_widthなど)を処理するためにカスタムインフレーションの動作を記述する必要があると思います。 –

関連する問題