
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:ID="@+ID/app"androID:layout_wIDth="match_parent"androID:layout_height="wrap_content"androID:layout_margin="0px"androID:background="#e4e8ed"androID:orIEntation="vertical"androID:padding="0px" ><include androID:ID="@+ID/tabbar" layout="@layout/tab" /><button androID:ID="@+ID/nist" androID:layout_wIDth="301dp" androID:layout_height="63dp" androID:text="Generate NIST file" /><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/rectangle" androID:layout_wIDth="276dp" androID:layout_height="wrap_content" androID:background="@drawable/rectangle" androID:layout_gravity="center_horizontal"> <Togglebutton androID:ID="@+ID/togglebutton1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Togglebutton" /> <button androID:ID="@+ID/button1" androID:layout_wIDth="wrap_content" androID:layout_height="128dp" androID:text="button" /></linearLayout></linearLayout>
但是,如果我将button移动到内部linearLayout下面,我的应用只是抛出异常:
linearLayout cannot be cast to androID.Widget.button
我觉得这很奇怪,我怎么能这样做?
编辑:
这是我将按钮“导入”到我的java代码的方式:
setTabbar(R.layout.horz_scroll_app);nist = (button) findVIEwByID(R.ID.nist);
setTabbar方法:
public voID setTabbar(int ID) { LayoutInflater inflater = LayoutInflater.from(this); scrollVIEw = (Myhorizontalscrollview) inflater.inflate( R.layout.horz_scroll_with_List_menu,null); setContentVIEw(scrollVIEw); menu = inflater.inflate(R.layout.horz_scroll_menu,null); app = inflater.inflate(ID,null); VIEwGroup tabbar = (VIEwGroup) app.findVIEwByID(R.ID.tabbar); ListVIEw ListVIEw = (ListVIEw) app.findVIEwByID(R.ID.List); ListVIEw = (ListVIEw) menu.findVIEwByID(R.ID.List); ArrayList<MenuItem> menuItems = getMenuItems(); ListVIEw.setAdapter(new MenuCustomAdapter(this,menuItems)); btnSlIDe = (Imagebutton) tabbar.findVIEwByID(R.ID.BtnSlIDe); btnSlIDe.setontouchListener(new OntouchListener() { @OverrIDe public boolean ontouch(VIEw v,MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: btnSlIDe.setimageResource(R.drawable.lincolor); break; case MotionEvent.ACTION_UP: btnSlIDe.setimageResource(R.drawable.lin); break; } return false; } }); btnSlIDe.setonClickListener(new ClickListenerForScrolling(scrollVIEw,menu)); final VIEw[] children = new VIEw[] { menu,app }; int scrollToVIEwIDx = 1; scrollVIEw.initVIEws(children,scrollToVIEwIDx,new SizeCallbackForMenu(btnSlIDe));} 我还应该提一下,如果我在内部linearLayout下添加其他元素,它只适用于button元素.
解决方法 尝试清理和重建项目,如果不起作用,请重新启动Eclipse. 总结以上是内存溢出为你收集整理的LinearLayout无法强制转换为android.widget.Button全部内容,希望文章能够帮你解决LinearLayout无法强制转换为android.widget.Button所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)