2011-07-12 108 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等) –