博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android:自定义Activity基类,复用布局/控件,减少设置控件的重复代码,onPostOnCreate...
阅读量:6205 次
发布时间:2019-06-21

本文共 1386 字,大约阅读时间需要 4 分钟。

1.多个Activity共用相同布局或者相同控件:避免重复代码

BaseActivit代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public 
class 
BaseActivity 
extends 
Activity 
implements 
OnClickListener
{
    
/*
     
* 多个Activity共用相同布局或者相同控件
     
* 写个基类继承,避免重复代码
     
*/
    
@Override
    
public 
void 
onClick(View v)
    
{
        
switch 
(v.getId())
        
{
        
case 
R.id.common_titlebar_btn_back:
            
finish();
            
break
;
        
default
:
            
break
;
        
}
        
baseOnClick(v);
    
}
                  
    
protected 
void 
baseOnClick(View v)
    
{
                      
    
}
                  
    
@Override
    
protected 
void 
onCreate(Bundle savedInstanceState)
    
{
        
super
.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_base);
    
}
                  
    
@Override
    
protected 
void 
onResume()
    
{
        
super
.onResume();
        
onPostOnCreate();
    
}
                  
    
public 
final 
void 
onPostOnCreate()
//find同一个控件
    
{
        
findViewById(R.id.common_titlebar_btn_back).setOnClickListener(
this
);
    
}
    
@Override
    
public 
boolean 
onCreateOptionsMenu(Menu menu)
    
{
        
getMenuInflater().inflate(R.menu.base, menu);
        
return 
true
;
    
}
}

子类代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public 
class 
ThirdActivity 
extends 
BaseActivity
{
    
/**
     
*  layout里复用同一布局:
     
*     <include
     
*   android:id="@+id/include1"
     
*   layout="@layout/common_titlebar" />
     
*/
    
@Override
    
protected 
void 
onCreate(Bundle savedInstanceState)
    
{
        
super
.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_third_main);
    
}
}

本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1224627,如需转载请自行联系原作者
你可能感兴趣的文章
[故障解决]Mysql爆出ERROR 1044 (42000)的错误怎么办?
查看>>
MySQL之数据库对象查看工具mysqlshow
查看>>
关于大学生玩网络游戏的调查问卷
查看>>
ubuntu安装nodejs
查看>>
数据类型之Integer与int
查看>>
转载:ASP.NET在后台代码实现个功能,根据选择提示用户是否继续执行操作
查看>>
静态代理设计与动态代理设计
查看>>
uva-10152-乌龟排序
查看>>
ThreadLocal源码剖析
查看>>
每天一个linux命令(12):more命令
查看>>
奈奎斯特采样定理:
查看>>
Java笔试之Singleton
查看>>
android自动化框架简要剖析(一):运行原理+基本框架
查看>>
处理测试环境硬盘爆满
查看>>
Python函数积累
查看>>
jq挑战30天——打字机效果+小程序
查看>>
正则表达式怎样匹配 不包含特定字符串的字符串
查看>>
bzoj 2296: 【POJ Challenge】随机种子
查看>>
MPU和MCU的区别和选择
查看>>
js call
查看>>