package com.example.common.app;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import java.util.List;
import butterknife.ButterKnife;
/**
* The type Activity.
* 前面部分的封装
*/
public abstract class Activity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
//在界面未初始化之前调用的初始化窗口
initWindows();
if (initArgs( getIntent().getExtras() )){
//得到界面id并
int layId= getContentLayouId();
//设置到Activity界面中
setContentView( layId );
initWidget();
initData();
}else {
finish();
}
}
/**
* Init args boolean.
* 是否初始化成功
* 初始化相关参数,
* 正确返回true,错误返回false
*
* @param bundle the bundle
* @return the boolean
*/
protected boolean initArgs(Bundle bundle){
return true;
}
/**
* Init windows.
* 初始化窗口
*/
protected void initWindows(){
}
/**
* Gets content layou id.
*
* @return the content layou id
*/
protected abstract int getContentLayouId();//abstract由子类的实现,且必须实行
/**
* 得到当前界面的资源ID
* Init widget.
* 初始化控件
*/
protected void initWidget(){
ButterKnife.bind( this );
}
/**
* Init data.
* 初始化数据
*/
protected void initData(){
}
@Override
public boolean onSupportNavigateUp() {
//当点击界面导航返回时,finish当前界面
finish();
return super.onSupportNavigateUp();
}
//这里是点击手机上的返回键时,做的动作
@Override
public void onBackPressed() {
//得到当前Activity下的Fragment
List<Fragment> fragments=getSupportFragmentManager().getFragments();
// 判断是否为空
if (fragments!=null&&fragments.size()>0){
for (Fragment fragment:fragments){
// 判断是否为我们能够处理的Fragment类型
if (fragment instanceof com.example.common.app.Fragment){
// 判断是否拦截返回按钮
if (((com.example.common.app.Fragment) fragment).onBackPressed()){
//如果有直接reture
return;
}
}
}
}
super.onBackPressed();
finish();
}
}
使用
package com.example.administrator.chart1212;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.example.common.Common;
import com.example.common.app.Activity;
import butterknife.BindView;
import butterknife.OnClick;
public class MainActivity extends Activity implements IView{
@BindView( R.id.txt_result )
TextView mResultText;
@BindView( R.id.edit_query )
EditText mInputText;
private IPresenter mPresenter;
@Override
protected int getContentLayouId() {
return R.layout.activity_main2;
}
@Override
protected void initData() {
super.initData();
mPresenter =new Presenter( this );
}
@OnClick(R.id.btn_submit)
void onSubmit(){
mPresenter.search();
}
@Override
public String getInputString() {
return mInputText.getText().toString();
}
@Override
public void setResultString(String string) {
mResultText.setText( string );
}
}