package com.novelbook.android; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.google.gson.Gson; import com.novelbook.android.db.Novel; import com.novelbook.android.netsubscribe.MovieSubscribe; import com.novelbook.android.netutils.NetUtil; import com.novelbook.android.netutils.OnSuccessAndFaultListener; import com.novelbook.android.netutils.OnSuccessAndFaultSub; import com.novelbook.android.upgrade.UpdateManager; import com.novelbook.android.utils.CommonUtil; import com.novelbook.android.utils.ImageUtil; import com.novelbook.android.utils.MyImageLoader; import com.novelbook.android.utils.OnItemClickListener; import com.novelbook.android.adapter.BookListAdapter; import com.umeng.analytics.MobclickAgent; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; public abstract class Activity_base extends AppCompatActivity { private ProgressDialog mProgressDialog; private MyApp application; private Activity_base oContext; protected Gson gson = new Gson(); @Nullable @BindView(R.id.toolbar) Toolbar toolbar; @Nullable @BindView(R.id.recycleViewBookList) RecyclerView rvshudan; void showBook(String bookName) { //show paihangbang activity Intent intent = new Intent(this, BookActivity.class); intent.putExtra("BOOKNAME",bookName); startActivity(intent); } // protected MyImageLoader imgloader = new MyImageLoader(); /** * 初始化布局 */ public abstract int getLayoutRes(); protected abstract void initViews(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (application == null) { // 得到Application对象 application = (MyApp) getApplication(); } oContext = this;// 把当前的上下文对象赋值给BaseActivity addActivity();// 调用添加方法 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(getLayoutRes()); ButterKnife.bind(this); setupToolbar(); // 初始化View注入 setTitle(); initData(); initViews(); } protected void setupToolbar(){ // Toolbar toolbar = findViewById(R.id.toolbar); // setSupportActionBar(toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } protected abstract void setTitle(); protected abstract void initData() ; @Override protected void onResume() { super.onResume(); // MobclickAgent.onResume(this); } @Override protected void onPause(){ super.onPause(); hideProgress(); // MobclickAgent.onPause(this); } protected void closeCurrentActitivty(){ if( this instanceof BookActivity ) { return; } finish(); } protected BookListAdapter getBookListAdapter(List mDatas,int itemResourceId){ BookListAdapter mAdapter = new BookListAdapter(this ,mDatas,itemResourceId,new OnItemClickListener() { @Override public void onItemClick(View view, int position) { // showBook("射雕" +position); showBookDetail(mDatas.get(position)); closeCurrentActitivty(); } @Override public void onItemLongClick(View view, int position) { // initDialog(position); // mAdapter.removeData(position); } @Override public void onLinearOutClick(View view, int bookId,int llId) { // Toast.makeText(activity, "book "+ bookId + " clicked", Toast.LENGTH_SHORT).show(); // showBookDetail( mData.get(bookId)); } }); return mAdapter; } void showBookDetail(Novel book) { Intent intent = new Intent(this, BookActivity.class); intent.putExtra(BookActivity.EXTRA_BOOK,book); startActivity(intent); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId()==android.R.id.home){ //拦截toolbar 返回事件 finish(); return true; } return super.onOptionsItemSelected(item); } protected List getFakeData(int max ){ List mDatas = new ArrayList(); for (int i = 0; i