lyri 2014-12-27 15:37 采纳率: 0%
浏览 3902

BaseActivity下自定义actionbar中的button设置点击事件无效,代码见下。

package com.lyri.main.base;

import com.example.LlsqPs.R;

import android.app.ActionBar;
import android.app.Activity;
import android.app.ActionBar.LayoutParams;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class BaseActivity extends Activity
{
private Button backBtn;//返回按钮
private TextView titleTextView; //标题title

@Override
protected void onCreate(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
}

/**
 * 自定义actionbar的接口
 *@author lyri
 *@time 2014年12月27日
 * @param layoutId
 * @return View 将自定义actionbar的布局View对象返回给activity
 */
public View setActionBarLayout(int layoutId)
{
    ActionBar actionBar = getActionBar();
    if (null != actionBar)
    {
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowCustomEnabled(true);
        LayoutInflater inflator = LayoutInflater.from(this);

        View v = inflator.inflate(layoutId, null);
        ActionBar.LayoutParams layout = new ActionBar.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        actionBar.setCustomView(v, layout);

        backBtn=(Button)v.findViewById(R.id.myacitonbar_back_btn);
        backBtn.setOnClickListener(mActionBarOnclickListener);
        titleTextView=(TextView)v.findViewById(R.id.myactionbar_title);
        return v;
    }
    return null;
}

public OnClickListener mActionBarOnclickListener=new OnClickListener()
{

    @Override
    public void onClick(View v)
    {
        // TODO Auto-generated method stub
        if (v.getId()==R.id.myactionbar_title)
        {
            backOnclick();
        }
    }
};

/**
 * actionbar返回按钮点击事件处理
 * 子类可以override该函数,实现自己的返回事件
 *@author lyri
 *@time 2014年12月27日
 */
public void backOnclick()
{
    //defualt 默认结束
    finish();
}

/**
 * 设置actionbar的标题
 *@author lyri
 *@time 2014年12月27日
 * @param titleStr
 */
private void setTitle(String titleStr)
{
    titleTextView.setText(titleStr);
}

}

  • 写回答

2条回答 默认 最新

  • danielinbiti 2014-12-27 16:43
    关注

    没有初始化自定义layout
    protected void onCreate(Bundle savedInstanceState)
    {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    //setActionBarLayout 加上自定义布局初始化
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64