Android 自定义LinearLayout标题栏,照着郭霖大神的书,结果进程序时就闪退,附上代码。

月光22 2018-12-01 02:25:04
public class BorderLayout extends LinearLayout { public BorderLayout(Context context,AttributeSet attrs) { super(context,attrs); LayoutInflater.from(context).inflate(R.layout.border,this); ImageButton border_menu = (ImageButton) findViewById(R.id.border_menu); ImageButton border_setting = (ImageButton) findViewById(R.id.border_setting); ImageButton border_search = (ImageButton) findViewById(R.id.border_search); border_menu.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Toast.makeText(getContext(), "You clicked Edit button",Toast.LENGTH_SHORT).show(); } }); border_setting.setOnClickListener(new OnClickListener(){ public void onClick(View view) { Toast.makeText(getContext(),"Hello",Toast.LENGTH_SHORT).show(); //PopupMenu pop_menu = new PopupMenu(getContext(),view); //pop_menu.getMenuInflater().inflate(R.menu.bord,pop_menu.getMenu()); } }); } } 不添加点击事件没事,一加就闪退,求大神告知怎么回事,万分感激。
...全文
750 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
月光22 2018-12-05
  • 打赏
  • 举报
回复
谢谢了,解决了,布局文件没加id。
  • 打赏
  • 举报
回复
尝试着用这个:VIew view=Layoutainflater.from(contest).inflate(R.layout.border,null );然后各个控件的得到用:ImageVIew border_menu=(ImageVIew)view.findVIewById(R.id.border_setting);在此之前要确定你的界面里面要有这些控件对切有对应的id
czl0325 2018-12-04
  • 打赏
  • 举报
回复
2楼正解,你findviewbyid的调用者错了
怀君 2018-12-03
  • 打赏
  • 举报
回复
应该还没理解透测吧,兄弟
jklwan 2018-12-03
  • 打赏
  • 举报
回复
查看border.xml这个布局文件是否有这三个id的view
qq_36002902 2018-12-03
  • 打赏
  • 举报
回复
没试过这个自定义View...
你试试
View view=LayoutInflater.from(context).inflate(R.layout.border,this);
ImageButton border_menu = (ImageButton) view.findViewById(R.id.border_menu);
月光22 2018-12-01
  • 打赏
  • 举报
回复
发现三个ImageButton控件的findViewById返回null,网上百度一堆,在方法前指定view调用,也同样返回null,求大神指点一下。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧