真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

BaseActivity公用界面的使用

在開(kāi)發(fā)Android應(yīng)用中,有時(shí)候會(huì)在多個(gè)界面中出現(xiàn)同樣的布局

專(zhuān)注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)百色免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

如在頂部或底部顯示菜單欄,時(shí)間顯示等。為了避免麻煩,不用

在每個(gè)界面都布局,這個(gè)時(shí)候我們用到了BaseActivity(不是系統(tǒng)

的自己定義的)在BaseActivity布局里,我們可以把公用的布局先

寫(xiě)出來(lái),如界面頂部有返回按鈕,有當(dāng)前界面Title。在界面底部有

時(shí)間顯示欄,且時(shí)間和系統(tǒng)時(shí)間同步,不斷刷新。在BaseActivity

的布局里,我們留出LinearLayout這樣一個(gè)線(xiàn)性布局,并且設(shè)置屬性

id,這樣其他界面的layout放置到這個(gè)LinearLayout里就可以了。

我們看一下具體的使用步驟:

1、定義一個(gè)公用類(lèi)的Activity我這里叫MyBaseActivity繼承Activity

并且該MyBaseActivity為抽象類(lèi)abstract,因?yàn)槔锩嬗谐橄蠓椒?/p>

2、定義一個(gè)基本類(lèi)如FirstActivity繼承MyBaseActivity并實(shí)現(xiàn)

MyBaseActivity里面的抽象方法

3、在MyBaseActivity類(lèi)中有兩個(gè)抽象方法onBaseCreare(Bundle bundle)

和initView()其中 onBaseCreare()方法顧名思義是實(shí)現(xiàn)界面顯示的也就

是類(lèi)似于onCreate()中的setContentView(layout),initView()方法用于

初始化一些數(shù)據(jù),如Title的設(shè)置,時(shí)間顯示等。

4、在MyBaseActivity類(lèi)中有g(shù)etbtn_left()方法,可獲取公共控件的控制。

貼出詳細(xì)代碼:

先看xml布局:

//activity_my_base.xml


    
        

//activity_first.xml


    
        
    
    
        

//activity_second.xml


    
        

//接下來(lái)看一下類(lèi)中的源碼

首先是公共類(lèi) MyBaseActivity 

package com.example.testbaseactivity;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
public abstract class MyBaseActivity extends Activity implements OnClickListener{
// 內(nèi)容區(qū)域的布局
private View contentView;
private LinearLayout layoutBody;
private Button btn1;
private Button btn2;
private TextView tv;
private TextView vTime;
private String timeString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_base);
btn1 = (Button) findViewById(R.id.button1_base);
btn2 = (Button) findViewById(R.id.button3_base);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
tv = (TextView) findViewById(R.id.title);
layoutBody = (LinearLayout) findViewById(R.id.layout_id);
vTime = (TextView) findViewById(R.id.time);
onBaseCreare(savedInstanceState);
initView();
}
/**
 * 初始化界面
 * @param bundle
 */
public abstract void onBaseCreare(Bundle bundle);
/**
 * 初始化數(shù)據(jù)
 */
public abstract void initView();
/**
 * 底部欄刷新時(shí)間
 * 刷新間隔1s
 */
public void setTime() {
int delay = 0;
int period = 1000;// 循環(huán)間隔 1000ms
java.util.Timer timer = new java.util.Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
timeString = getTime();
myhandler.sendEmptyMessage(0x0001);
}
}, delay, period);
}
@SuppressLint("HandlerLeak")
private Handler myhandler = new Handler() {
public void dispatchMessage(android.os.Message msg) {
switch (msg.what) {
case 0x0001:
vTime.setText(timeString);
break;
}
}
};
@SuppressLint("SimpleDateFormat")
public static String getTime() {
Date nowdate = new Date(); // 當(dāng)前時(shí)間
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return dateFormat.format(nowdate);
}
/**
 * 設(shè)置標(biāo)題
 * 
 * @param title
 */
public void setTitle(String title) {
if (null != tv) {
tv.setText(title);
}
}
/**
 * 隱藏上方的標(biāo)題欄
 */
public void hideTitleView() {
if (null != btn1) {
btn1.setVisibility(View.INVISIBLE);
}
}
public void setContentViewId(int layoutId) {
contentView = getLayoutInflater().inflate(layoutId, null);
if (layoutBody.getChildCount() > 0) {
layoutBody.removeAllViews();
}
if (contentView != null) {
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, 
LayoutParams.MATCH_PARENT);
layoutBody.addView(contentView, params);
}
}
/**
 * 得到左邊的按鈕
 * 
 * @return
 */
public Button getbtn_left() {
return btn1;
}
/**
 * 得到右邊的按鈕
 * 
 * @return
 */
public Button getbtn_right() {
return btn2;
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(arg0.equals(btn1)){
Toast.makeText(MyBaseActivity.this, "MyBaseActivity---btn1", 
Toast.LENGTH_SHORT).show();
}
if(arg0.equals(btn2)){
Toast.makeText(MyBaseActivity.this, "MyBaseActivity---btn2", 
Toast.LENGTH_SHORT).show();
}
}
}

//第一個(gè)界面 FirstActivity 

package com.example.testbaseactivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class FirstActivity extends MyBaseActivity {
private Button btn1;
private Button btn2;
private Button btn_left;
private Button btn_right;
@Override
public void onBaseCreare(Bundle bundle) {
setContentViewId(R.layout.activity_first);
btn_left = getbtn_left();
btn_right = getbtn_right();
findViewById();
}
@Override
public void initView() {
setTitle("FirstActivity");
setTime();
}
public void findViewById(){
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
if(arg0.equals(btn1)){
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
if(arg0.equals(btn2)){
Toast.makeText(FirstActivity.this, "FirstActivity---btn2", 
Toast.LENGTH_SHORT).show();
}
if(arg0.equals(btn_left)){
Toast.makeText(FirstActivity.this, "FirstActivity---btn_left", 
Toast.LENGTH_SHORT).show();
}
if(arg0.equals(btn_right)){
Toast.makeText(FirstActivity.this, "FirstActivity---btn_right", 
Toast.LENGTH_SHORT).show();
}
}
}

//第二個(gè)界面

package com.example.testbaseactivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class SecondActivity extends MyBaseActivity implements OnClickListener{
private Button btn;
@Override
public void onBaseCreare(Bundle bundle) {
setContentViewId(R.layout.activity_second);
btn = (Button) findViewById(R.id.button1_second);
btn.setOnClickListener(this);
}
@Override
public void initView() {
setTime();
setTitle("SecondActivity");
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(arg0.equals(btn)){
finish();
}
}
}

//manifest.xml



    
    
        
            
                
                
            
        
        
        
        
        
    

給出效果圖

BaseActivity公用界面的使用           BaseActivity公用界面的使用

BaseActivity公用界面的使用


網(wǎng)頁(yè)標(biāo)題:BaseActivity公用界面的使用
轉(zhuǎn)載來(lái)于:http://weahome.cn/article/joddip.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部