public abstract class BaseActivity extends AppCompatActivity {
/**
* 不要实现两个参数的onCreate;
* 不要实现两个参数的onCreate;
* 不要实现两个参数的onCreate;
* @param savedInstanceState
*/
// @Override
// public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
// super.onCreate(savedInstanceState, persistentState);
// Log.e("wzq","BaseActivity - onCreate");
//
// setContentView(initLayout());
// initVeiw();
// initData();
// setListener();
// }
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initVeiw();
initData();
setListener();
}
// 抽取加载布局的方法
public abstract void initVeiw();
// 抽取加载数据的方法
public abstract void initData();
//抽取设置监听的方法
public abstract void setListener();
/**
* 跳转方法
* @param glass
*/
public void jumpActivity(Class glass){
Intent intent = new Intent(this,glass);
startActivity(intent);
}
}
继承上一个类
public class MainActivity extends BaseActivity {
String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";
private ArrayList<String> list = new ArrayList();
private PullToRefreshListView plv;
private int page = 0;
private ArrayAdapter<String> mAdapter;
@Override
public void initVeiw() {
setContentView(R.layout.activity_main);
Log.e("wzq","initVeiw");
plv = (PullToRefreshListView) findViewById(R.id.plv);
plv.setMode(PullToRefreshBase.Mode.BOTH); // 上下拉刷新都支持;
// 设置adapter
mAdapter = new ArrayAdapter<>(MainActivity.this,
android.R.layout.simple_list_item_1, list);
plv.setAdapter(mAdapter);
}
@Override
public void initData() {
Log.e("wzq","initData");
//请求网络
getNetData(0);
}
@Override
public void setListener() {
Log.e("wzq","setListener");
// 监听使用OnRefreshListener;
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
// 下拉刷新
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
list.clear();
page = 0;
getNetData(page);
}
// 上拉加载更多;
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
getNetData(page++);
}
});
}
private void getNetData(int page) {
new MAsyncTask().execute(baseUrl + page);
}
class MAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
return NetWordUtils.getNetjson(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.e("wzq","json--"+s);
Gson gson = new Gson();
Product product = gson.fromJson(s, Product.class);
List<Product.DataBean> dataTemp = product.getData();
ArrayList<String> stringList = new ArrayList<>();//初始化一个空的字符串集合
for (int i = 0; i < dataTemp.size(); i++) {
stringList.add(dataTemp.get(i).getTITLE());
}
list.addAll(stringList);
mAdapter.notifyDataSetChanged();
plv.onRefreshComplete(); // 让刷新头和刷新底部返回
}
}
@Override
protected void onResume() {
super.onResume();
Log.e("wzq","onResume");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e("wzq","onDestroy");
}
}
bottom的Activity
package lmm.bw.com.mythird.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import lmm.bw.com.mythird.Fragment01;
import lmm.bw.com.mythird.Fragment02;
import lmm.bw.com.mythird.Fragment03;
import lmm.bw.com.mythird.R;
public class LoginActivity extends BlankActivity {
private DrawerLayout drawerLayout;
private TextView mTextMessage;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
switch (item.getItemId()) {
case R.id.navigation_home:
fragmentTransaction.show(fragment01).hide(fragment02).hide(fragment03);
break;
case R.id.navigation_dashboard:
fragmentTransaction.show(fragment02).hide(fragment01).hide(fragment03);
break;
case R.id.navigation_notifications:
fragmentTransaction.show(fragment03).hide(fragment02).hide(fragment01);
break;
}
fragmentTransaction.commit();
return true;
}
};
private FrameLayout frameLayout;
private ImageView imageView;
private Fragment01 fragment01;
private Fragment02 fragment02;
private Fragment03 fragment03;
private FragmentTransaction transaction;
@Override
public void intView() {
drawerLayout = findViewById(R.id.drawer);
frameLayout = findViewById(R.id.framelayout);
imageView = findViewById(R.id.img);
}
@Override
protected void intData() {
fragment01 = new Fragment01();
fragment02 = new Fragment02();
fragment03 = new Fragment03();
transaction = getSupportFragmentManager().beginTransaction();
FragmentTransaction add = transaction.add(R.id.framelayout, fragment01,"fragmenta");
FragmentTransaction add1 = transaction.add(R.id.framelayout, fragment02);
FragmentTransaction add2 = transaction.add(R.id.framelayout, fragment03);
transaction.show(fragment01).hide(fragment02).hide(fragment03);
transaction.commit();
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View view, float v) {
}
@Override
public void onDrawerOpened(@NonNull View view) {
Toast.makeText(LoginActivity.this,"侧拉已被打开",Toast.LENGTH_SHORT).show();
}
@Override
public void onDrawerClosed(@NonNull View view) {
Toast.makeText(LoginActivity.this,"侧拉已被关闭",Toast.LENGTH_SHORT).show();
}
@Override
public void onDrawerStateChanged(int i) {
}
});
}
public void supper(Fragment fragment) {
getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, fragment01,"fragmenta").commit();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Fragment fragmenta = getSupportFragmentManager().findFragmentByTag("fragmenta");
fragmenta.onActivityResult(requestCode, resultCode, data);
}
}