今天看一個大神的Demo發現裏面的Activity繼承的是自己寫的共性的Activity,因爲是菜鳥,所以感覺很不懂,於是照本宣科,寫了一遍,從Android Studio中發現“抽象Activity”。於是寫了今天這個博客,也是我第一個博客。
下面一起學習抽象Activity吧!
在開發中,可以建立一個公共的Activity類,讓所有其他的Activity繼承這個類,在這個類中對頭部和尾部的數據進行處理。下面是我寫的抽象Activity的源碼。
package com.example.zes.myapplication;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
public abstract class TextActivity extends Activity {//該處繼承Activity並將TextActivity聲明爲抽象屬性
public TextView tv_title;//聲明公共的TextView控件
public Context mContext;//上下文
public LinearLayout ll_titleBar;//titleBar
public LinearLayout ll_container;
public View view ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = TextActivity.this;
setContentView(R.layout.activity_text);
initTitle();
}
public void initLayout(int layoutID){//解析View
ll_container = (LinearLayout)findViewById(R.id.ll_container);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(layoutID,null);
ll_container.addView(view);
initView(view);
}
public void initTitle() {
tv_title = (TextView) findViewById(R.id.tv_title);
ll_titleBar = (LinearLayout) findViewById(R.id.ll_title_bar);
}
public abstract void initView(View view);
}
下面是主Activity的代碼:
package com.example.zes.myapplication; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity extends TextActivity { private Intent intent ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initLayout(R.layout.activity_main); initTitle(); intent = new Intent(); } public void initView(View view) { } public void initTitle() { super.initTitle(); tv_title.setText("抽象Activity測試Demo"); } }繼承抽象的Activity並對其方法進行復寫。(xml文件此處不給出,根據程序代碼可以自行創建)