新手提问有关自定义控件的问题

Blastway 2016-07-13 04:16:36
我写了一个自定义布局


其中包含了两个按钮,我想给这两个按钮加监听事件,使其在每一个activity中都可以用
所以我写了一个类
package com.example.uitext;

import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;

public class TitleLayout extends LinearLayout {
public TitleLayout(Context context,AttributeSet attrs){
super(context,attrs);
LayoutInflater.from(context).inflate(R.layout.title, this);
Button titleBack = (Button) findViewById(R.id.button1);
Button titleEdit = (Button) findViewById(R.id.button2);
titleBack.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
((Activity) getContext()).finish();
}
});
titleEdit.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(getContext(), "你点击了菜单", Toast.LENGTH_SHORT).show();
}
});
}

}

并且把这些加在main_activity中
    <com.example.uitext.TitleLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
></com.example.uitext.TitleLayout>

<include
android:id="@+id/include1"
layout="@layout/title" />

但是最终我的程序只显示了页面(有按钮),并没有功能。
这是为什么呢,求大神解答
...全文
196 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
風言楓語 2016-07-15
  • 打赏
  • 举报
回复
引用 5 楼 Blastway 的回复:
按照一楼的方法改了,但是还是不行,我觉得应该是那个TitleLayout类的调用出现了问题,求解
<include android:id="@+id/include1" layout="@layout/title" /> 你在布局里面把这个去掉 试试
Blastway 2016-07-14
  • 打赏
  • 举报
回复
按照一楼的方法改了,但是还是不行,我觉得应该是那个TitleLayout类的调用出现了问题,求解
东风玖哥 2016-07-13
  • 打赏
  • 举报
回复
楼主,你写个interface调用吧
东风玖哥 2016-07-13
  • 打赏
  • 举报
回复
引用 1 楼 u012456102 的回复:
LinearLayout view = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.title, this); Button titleBack = (Button) view. findViewById(R.id.button1); Button titleEdit = (Button) view. findViewById(R.id.button2); 改成这样试试
正解
qq_26763799 2016-07-13
  • 打赏
  • 举报
回复
呵呵.... 我想你是要做一个所有页面都能调用的base页面,那么你就需要写个BaseActivity实现点击回调,然后每个Activity都继承它,并且每个Activity的布局内引入这个layout,调用base里的方法让baseActivity的回调起作用 以上...
風言楓語 2016-07-13
  • 打赏
  • 举报
回复
LinearLayout view = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.title, this); Button titleBack = (Button) view. findViewById(R.id.button1); Button titleEdit = (Button) view. findViewById(R.id.button2); 改成这样试试

80,490

社区成员

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

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