以下是我正在尝试做的简化代码示例:
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 :(得分:0)
您还必须在XML上声明自定义视图:
<view class="your.package.main$myFlipper"
android:layout_width="fill_parent"
etc.
/>
额外建议:应使用大写的第一个字母声明类。
答案 1 :(得分:0)
我想到了那些感兴趣的人。
您需要添加一个允许自定义视图类中的Layout属性的构造函数。像这样:
public myFlipper(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
}
你也需要关注克里斯蒂安的例子。然后它应该工作:))