465 lines
15 KiB
Java
465 lines
15 KiB
Java
|
package com.novelbook.android;
|
|||
|
|
|||
|
import android.app.SearchManager;
|
|||
|
import android.content.Context;
|
|||
|
import android.content.Intent;
|
|||
|
import android.os.Bundle;
|
|||
|
import android.support.annotation.NonNull;
|
|||
|
import android.support.design.widget.BottomNavigationView;
|
|||
|
import android.support.v4.app.Fragment;
|
|||
|
import android.support.v4.app.FragmentManager;
|
|||
|
import android.support.v4.app.FragmentTransaction;
|
|||
|
import android.support.v7.widget.AppCompatSpinner;
|
|||
|
import android.support.v7.widget.SearchView;
|
|||
|
import android.util.Log;
|
|||
|
import android.view.KeyEvent;
|
|||
|
import android.view.View;
|
|||
|
import android.support.design.widget.NavigationView;
|
|||
|
import android.support.v4.view.GravityCompat;
|
|||
|
import android.support.v4.widget.DrawerLayout;
|
|||
|
import android.support.v7.app.ActionBarDrawerToggle;
|
|||
|
import android.support.v7.app.AppCompatActivity;
|
|||
|
import android.support.v7.widget.Toolbar;
|
|||
|
import android.view.Menu;
|
|||
|
import android.view.MenuItem;
|
|||
|
import android.widget.TextView;
|
|||
|
import android.widget.Toast;
|
|||
|
|
|||
|
import com.novelbook.android.Fragments.Fragment_Shelf;
|
|||
|
import com.novelbook.android.Fragments.Fragment_bookStore;
|
|||
|
import com.novelbook.android.Fragments.Fragment_paihang;
|
|||
|
|
|||
|
import org.xutils.common.Callback;
|
|||
|
import org.xutils.http.RequestParams;
|
|||
|
import org.xutils.x;
|
|||
|
|
|||
|
import butterknife.BindView;
|
|||
|
import butterknife.ButterKnife;
|
|||
|
public class Main2Activity extends AppCompatActivity
|
|||
|
implements NavigationView.OnNavigationItemSelectedListener{//} , BasicFragment.OnFragmentInteractionListener {
|
|||
|
public MyApp app ;
|
|||
|
public static String TAG ="com.novelbook.android.Main2Activity";
|
|||
|
@BindView(R.id.toolbar)
|
|||
|
Toolbar toolbar;
|
|||
|
// @BindView(R.id.fab)
|
|||
|
// FloatingActionButton fab ;
|
|||
|
@BindView(R.id.nav_view )
|
|||
|
NavigationView navigationView;
|
|||
|
@BindView(R.id.navigation )
|
|||
|
BottomNavigationView botoomNavigation;
|
|||
|
|
|||
|
@Override
|
|||
|
protected void onCreate(Bundle savedInstanceState) {
|
|||
|
super.onCreate(savedInstanceState);
|
|||
|
app =(MyApp) getApplicationContext();
|
|||
|
// requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
|
|||
|
setContentView(R.layout.activity_main2);
|
|||
|
ButterKnife.bind(this);
|
|||
|
creatToolbar();
|
|||
|
setupNavi();
|
|||
|
showHome();
|
|||
|
getDataFromServer();
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
String currentActiveFragment;
|
|||
|
private void showFragment(Fragment fragment, String fragmentTag)
|
|||
|
{
|
|||
|
|
|||
|
FragmentManager fm = getSupportFragmentManager();
|
|||
|
FragmentTransaction ft = fm.beginTransaction();
|
|||
|
|
|||
|
if (findViewById(R.id.realtabcontent) != null) { //realtabcontent
|
|||
|
|
|||
|
ft.replace(R.id.realtabcontent, fragment,fragmentTag);
|
|||
|
|
|||
|
ft.addToBackStack(null); //add to backstack.
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
try{
|
|||
|
ft.add(R.id.realtabcontent, fragment,fragmentTag);
|
|||
|
}catch(Exception e){
|
|||
|
// Utils.logStackTrace(e, dTAG);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
currentActiveFragment =fragmentTag;
|
|||
|
// ft.setTransition(2500);//TRANSIT_FRAGMENT_OPEN
|
|||
|
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
|
|||
|
|
|||
|
ft.commitAllowingStateLoss();
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private ActionBarDrawerToggle toggle;
|
|||
|
private void creatToolbar() {
|
|||
|
|
|||
|
// toolbar= (Toolbar) findViewById(R.id.toolbar);
|
|||
|
setSupportActionBar(toolbar);
|
|||
|
// toolbar.setNavigationIcon(R.mipmap.ic_launcher_round);//设置导航栏图标
|
|||
|
// toolbar.setLogo(R.mipmap.ic_launcher);//设置app logo
|
|||
|
// toolbar.setTitle("Title");//设置主标题
|
|||
|
// setTitle("titleaa");
|
|||
|
// toolbar.setSubtitle("Subtitle");//设置子标题
|
|||
|
|
|||
|
toolbar.inflateMenu(R.menu.main);//设置右上角的填充菜单
|
|||
|
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
|
|||
|
@Override
|
|||
|
public boolean onMenuItemClick(MenuItem item) {
|
|||
|
int menuItemId = item.getItemId();
|
|||
|
if (menuItemId == R.id.menuFenlei) {
|
|||
|
|
|||
|
Intent intent = new Intent(Main2Activity.this, activity_cates.class);
|
|||
|
startActivity(intent);
|
|||
|
|
|||
|
|
|||
|
}else if(menuItemId == R.id.menuMore) {
|
|||
|
showShelfMoreSheet();
|
|||
|
}
|
|||
|
else if(menuItemId == R.id.menuFinshi) {
|
|||
|
udateShelfZhengli();
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
private void udateShelfZhengli() {
|
|||
|
switchShelfZhengli(true);
|
|||
|
}
|
|||
|
Fragment_Shelf fragment_shelf;
|
|||
|
public void setShelfFragment(Fragment_Shelf fragment_shelf){
|
|||
|
this.fragment_shelf=fragment_shelf;
|
|||
|
}
|
|||
|
private void showShelfMoreSheet() {
|
|||
|
{
|
|||
|
if(fragment_shelf!=null)
|
|||
|
fragment_shelf.showShelfMoreSheet();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void setupNavi() {
|
|||
|
|
|||
|
//drawer
|
|||
|
navigationView = (NavigationView) findViewById(R.id.nav_view);
|
|||
|
navigationView.setNavigationItemSelectedListener(this);
|
|||
|
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
|||
|
toggle = new ActionBarDrawerToggle(
|
|||
|
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
|
|||
|
drawer.addDrawerListener(toggle);
|
|||
|
toggle.syncState();
|
|||
|
|
|||
|
// mTextMessage = (TextView) findViewById(R.id.message);
|
|||
|
botoomNavigation = (BottomNavigationView) findViewById(R.id.navigation);
|
|||
|
botoomNavigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public void onBackPressed() {
|
|||
|
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
|||
|
if (drawer.isDrawerOpen(GravityCompat.START)) {
|
|||
|
drawer.closeDrawer(GravityCompat.START);
|
|||
|
} else {
|
|||
|
super.onBackPressed();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|||
|
// Inflate the menu; this adds items to the action bar if it is present.
|
|||
|
getMenuInflater().inflate(R.menu.main, menu);
|
|||
|
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
|
|||
|
SearchView searchView = (SearchView) menu.findItem(R.id.menuSearch).getActionView();
|
|||
|
// Assumes current activity is the searchable activity
|
|||
|
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|||
|
// Handle action bar item clicks here. The action bar will
|
|||
|
// automatically handle clicks on the Home/Up button, so long
|
|||
|
// as you specify a parent activity in AndroidManifest.xml.
|
|||
|
int id = item.getItemId();
|
|||
|
|
|||
|
//noinspection SimplifiableIfStatement
|
|||
|
if (id == R.id.action_settings) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
return super.onOptionsItemSelected(item);
|
|||
|
}
|
|||
|
|
|||
|
@SuppressWarnings("StatementWithEmptyBody")
|
|||
|
@Override
|
|||
|
public boolean onNavigationItemSelected(MenuItem item) {
|
|||
|
// Handle navigation view item clicks here.
|
|||
|
int id = item.getItemId();
|
|||
|
|
|||
|
if (id == R.id.nav_camera) {
|
|||
|
// Handle the camera action
|
|||
|
} else if (id == R.id.nav_gallery) {
|
|||
|
|
|||
|
} else if (id == R.id.nav_slideshow) {
|
|||
|
|
|||
|
} else if (id == R.id.nav_manage) {
|
|||
|
|
|||
|
} else if (id == R.id.nav_share) {
|
|||
|
|
|||
|
} else if (id == R.id.nav_send) {
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
|||
|
drawer.closeDrawer(GravityCompat.START);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
|
|||
|
= new BottomNavigationView.OnNavigationItemSelectedListener() {
|
|||
|
|
|||
|
@Override
|
|||
|
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
|||
|
switch (item.getItemId()) {
|
|||
|
case R.id.navigation_home:
|
|||
|
//mTextMessage.setText(R.string.title_home);
|
|||
|
bottomSelectedIndex =0;
|
|||
|
showHome();
|
|||
|
return true;
|
|||
|
case R.id.navigation_dashboard:
|
|||
|
// mTextMessage.setText(R.string.title_dashboard);
|
|||
|
bottomSelectedIndex=1;
|
|||
|
showBookStore();
|
|||
|
return true;
|
|||
|
case R.id.navigation_notifications:
|
|||
|
bottomSelectedIndex=2;
|
|||
|
// mTextMessage.setText(R.string.title_notifications);
|
|||
|
showPaihang();
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
};
|
|||
|
@BindView(R.id.sexSelect)
|
|||
|
AppCompatSpinner spinner;
|
|||
|
@BindView(R.id.toolbarTitle)
|
|||
|
TextView txtTitle;
|
|||
|
private int bottomSelectedIndex;
|
|||
|
|
|||
|
public void swithToolbarItems( ) {
|
|||
|
|
|||
|
Log.e( TAG, "swithToolbarItems: " );
|
|||
|
boolean showToggle =bottomSelectedIndex !=1;
|
|||
|
boolean showSpinner = bottomSelectedIndex ==1;
|
|||
|
boolean showTitle = bottomSelectedIndex !=1;
|
|||
|
String title = bottomSelectedIndex==0?"我的书架":"排行榜";
|
|||
|
|
|||
|
toggle.setDrawerIndicatorEnabled(showToggle);
|
|||
|
toggle.syncState();
|
|||
|
|
|||
|
spinner.setVisibility( showSpinner?View.VISIBLE:View.INVISIBLE);
|
|||
|
|
|||
|
supportInvalidateOptionsMenu();
|
|||
|
//invalidateOptionsMenu();
|
|||
|
|
|||
|
if(bottomSelectedIndex==1) {
|
|||
|
title ="";
|
|||
|
}
|
|||
|
|
|||
|
this.setTitle(title);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public boolean onPrepareOptionsMenu(Menu menu) {
|
|||
|
Log.e(TAG, "onPrepareOptionsMenu");
|
|||
|
|
|||
|
menu.findItem(R.id.menuFinshi).setVisible(false);
|
|||
|
// menu.findItem(R.id.menuSearch).setVisible(true);
|
|||
|
if(bottomSelectedIndex==0) {
|
|||
|
menu.findItem(R.id.menuFinshi).setVisible(isShelfZhengli);
|
|||
|
if(isShelfZhengli){
|
|||
|
menu.findItem(R.id.menuFenlei).setVisible(false);
|
|||
|
menu.findItem(R.id.menuMore).setVisible(false);
|
|||
|
menu.findItem(R.id.menuSearch).setVisible(false);
|
|||
|
}else {
|
|||
|
menu.findItem(R.id.menuFenlei).setVisible(false);
|
|||
|
menu.findItem(R.id.menuMore).setVisible(true);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}else if(bottomSelectedIndex==1) {
|
|||
|
menu.findItem(R.id.menuFenlei).setVisible(true);
|
|||
|
menu.findItem(R.id.menuMore).setVisible(false);
|
|||
|
|
|||
|
}else if(bottomSelectedIndex==2) {
|
|||
|
menu.findItem(R.id.menuFenlei).setVisible(false);
|
|||
|
menu.findItem(R.id.menuMore).setVisible(false);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return super.onPrepareOptionsMenu(menu);
|
|||
|
}
|
|||
|
|
|||
|
private void showHome() {
|
|||
|
|
|||
|
Fragment_Shelf fragment_Shelf = (Fragment_Shelf) getSupportFragmentManager()
|
|||
|
.findFragmentByTag(Fragment_Shelf.getFTag());
|
|||
|
if(fragment_Shelf==null) fragment_Shelf =new Fragment_Shelf();
|
|||
|
showFragment(fragment_Shelf,Fragment_Shelf.getFTag());
|
|||
|
swithToolbarItems();
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
private void showBookStore() {
|
|||
|
Fragment_bookStore fragment = (Fragment_bookStore) getSupportFragmentManager()
|
|||
|
.findFragmentByTag(Fragment_bookStore.getFTag());
|
|||
|
if(fragment ==null) fragment =new Fragment_bookStore();
|
|||
|
showFragment(fragment , Fragment_bookStore.getFTag());
|
|||
|
swithToolbarItems();
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
private void showOther() {
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void showPaihang(){
|
|||
|
|
|||
|
Fragment_paihang fragment = (Fragment_paihang) getSupportFragmentManager()
|
|||
|
.findFragmentByTag(Fragment_paihang.getFTag());
|
|||
|
if(fragment ==null) fragment =new Fragment_paihang();
|
|||
|
showFragment(fragment ,Fragment_paihang.getFTag());
|
|||
|
swithToolbarItems( );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void getDataFromServer() {
|
|||
|
//url
|
|||
|
String url1 = "http://api.kkmh.com/v1/topic_new/discovery_list?gender=0&sa_event=eyJwcm9qZWN0Ijoia%203VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3ODM5MDM5MzE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21t%20dW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjIuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tRmluZENhdGVnb%203J5VGFiTmFtZSI6IuWFqOmDqCIsIklzQXV0b0xvYWQiOmZhbHNlLCIkbGliX3ZlcnNpb24iOiIxLjYuMzQiLCIkbmV0d29ya190eXBlIjoiV0l%20GSSIsIiR3aWZpIjp0cnVlLCIkbWFudWZhY3R1cmVyIjoic2Ftc3VuZyIsIkZyb21GaW5kVGFiTmFtZSI6IuaOqOiNkCIsIiRzY3JlZW%205faGVpZ2h0Ijo1NzYsIkNhdGVnb3J5Ijoi5peg5rOV6I635Y-WIiwiSG9tZXBhZ2VVcGRhdGVEYXRlIjowLCJQcm9wZXJ0eUV2ZW5%200IjoiUmVhZEZpbmRQYWdlIiwiRmluZFRhYk5hbWUiOiLmjqjojZAiLCJhYnRlc3RfZ3JvdXAiOjQ2LCIkc2NyZWVuX3dpZHRoIjo%20xMDI0LCJGaW5kQ2F0ZWdvcnlUYWJOYW1lIjoi5YWo6YOoIiwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2%20UiLCIkY2FycmllciI6IkNNQ0MiLCIkbW9kZWwiOiJHVC1QNTIxMCIsIiRhcHBfdmVyc2lvbiI6IjMuOC4xIn0sInR5cGUiOiJ0cmFja%20yIsImRpc3RpbmN0X2lkIjoiQTo5MDUxMDQyNzYzNzU1MTA5Iiwib3JpZ2luYWxfaWQiOiJBOjkwNTEwNDI3NjM3NTUxMDkiLCJldmV%20udCI6IlJlYWRGaW5kUGFnZSJ9";
|
|||
|
|
|||
|
|
|||
|
RequestParams params1 = new RequestParams();
|
|||
|
params1.setUri(url1);
|
|||
|
|
|||
|
//用xutils3网络请求数据,需要导入xutils3的依赖和帮助类(自己导入)
|
|||
|
x.http().get(params1, new Callback.CommonCallback<String>() {
|
|||
|
|
|||
|
@Override
|
|||
|
public void onSuccess(final String result) {
|
|||
|
|
|||
|
if (result != null) {
|
|||
|
Log.i("xutils-http-result", result);
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public void onError(Throwable ex, boolean isOnCallback) {
|
|||
|
Log.i("xutils-http-error", "onError: ");
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public void onCancelled(CancelledException cex) {
|
|||
|
|
|||
|
Log.i("xutils-http-cancel", "onCancelled: ");
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public void onFinished() {
|
|||
|
|
|||
|
Log.i("xutils-http-finished", "onFinished: ");
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
long firstTime =0;
|
|||
|
@Override
|
|||
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
|||
|
|
|||
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
|||
|
if( navigationView.isShown()){
|
|||
|
|
|||
|
}
|
|||
|
int cnt=0;
|
|||
|
|
|||
|
|
|||
|
long secondTime = System.currentTimeMillis();
|
|||
|
if (secondTime - firstTime > 800) {//如果两次按键时间间隔大于800毫秒,则不退出
|
|||
|
String msg= "再按一次将退出" ;
|
|||
|
Toast.makeText( this, msg, Toast.LENGTH_SHORT).show();
|
|||
|
firstTime = secondTime;//更新firstTime
|
|||
|
|
|||
|
return true;
|
|||
|
} else {
|
|||
|
// return super.onKeyUp(keyCode, event);
|
|||
|
|
|||
|
// return super.onKeyUp(keyCode, event);
|
|||
|
// return false;
|
|||
|
finish();
|
|||
|
app.exit();
|
|||
|
}
|
|||
|
}
|
|||
|
try{
|
|||
|
return super.onKeyUp(keyCode, event);
|
|||
|
}
|
|||
|
catch(Exception e){
|
|||
|
Log.d("mainActivity","onkeyup出错" );
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public void onResume() {
|
|||
|
super.onResume();
|
|||
|
// swithToolbarItems( );
|
|||
|
// setTitle("title on resume");
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public void hideBottomNavi(){
|
|||
|
botoomNavigation.setVisibility(View.GONE);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
boolean isShelfZhengli =false;
|
|||
|
public void switchShelfZhengli(boolean finished){
|
|||
|
|
|||
|
|
|||
|
if(finished) {
|
|||
|
isShelfZhengli = false;
|
|||
|
swithToolbarItems();
|
|||
|
botoomNavigation.setVisibility(View.VISIBLE);
|
|||
|
fragment_shelf.initReceyleView();
|
|||
|
|
|||
|
}else {
|
|||
|
toggle.setDrawerIndicatorEnabled(false);
|
|||
|
toggle.syncState();
|
|||
|
supportInvalidateOptionsMenu();
|
|||
|
isShelfZhengli = true;
|
|||
|
botoomNavigation.setVisibility(View.GONE);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|