pda/zhuike/.svn/pristine/c4/c4865e51b091cfc44e288d9f32a...

221 lines
6.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.novelbook.android;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import com.ixiaow.multilayout.MultiLayout;
import com.novelbook.android.Fragments.BasicFragment;
import com.novelbook.android.Fragments.Fragment_booklist;
import com.novelbook.android.Fragments.Fragment_shudan_list;
import com.flyco.tablayout.SlidingTabLayout;
import com.novelbook.android.bean.ProgressType;
import com.novelbook.android.utils.Constants;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import static com.novelbook.android.utils.Constants.lstNt;
import static com.novelbook.android.utils.Constants.lstProgress;
import static com.novelbook.android.utils.Constants.lstSex;
public class Activity_cate_books extends Activity_base {
public static final String TAG=Activity_cate_books.class.getSimpleName();
public static String EXTRNAME="catename";
@BindView(R.id.viewpager)
ViewPager mViewpager;
@BindView(R.id.tab_layout)
SlidingTabLayout tabLayout;
@BindView(R.id.topic_layout)
MultiLayout topic_layout;
String cate="";
private ArrayList<BasicFragment> mFragments;
ArrayList<View> mList;
String[] mTitle;
private int tabPos;
@Override
public int getLayoutRes() {
return R.layout.activity_cate_books;
}
@Override
protected void initViews() {
creatToolbar();
initTabs2();
}
@Override
protected void setTitle() {
cate = getIntent().getStringExtra(EXTRNAME);
this.setTitle(cate);
}
@Override
protected void initData() {
}
@Override
public void fillData() {
}
//---------tabs-------------
void initTabs() {
List<String> lstType = new ArrayList<String>() ;//Arrays.asList(lstProgress);
for(ProgressType progressType : Constants.lstProgressType){
lstType.add(progressType.getName());
}
topic_layout.initTabNames(lstType) ;
topic_layout.setOnTabSelectListener(new MultiLayout.OnTabSelectListener() {
@Override
public void select(TextView textView, int i, int i1) {
Log.d(TAG, String.format("select: text %si %s i1 %s ",textView.getText(),i,i1));
tabPos = i1;
tabChanged();
}
});
}
void initTabs2() {
if(Constants.lstProgressType==null){
return;
}
if (mFragments == null ) {
mFragments = new ArrayList<BasicFragment>();
}
mFragments.clear();
for(ProgressType progressType : Constants.lstProgressType) {
mFragments.add(Fragment_booklist.newInstance(cate, progressType.getId()));
}
Log.d(TAG, "initial fragments in tabs ");
Log.d(TAG, "set viewPager adapter ");
// FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(activity.getSupportFragmentManager()) { 第一次进入没问题再次进入ViewPager的fragment时里面内容就没了,数据丢失 https://blog.csdn.net/allan_bst/article/details/64920076
FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
//ViewPager与TabLayout绑定后这里获取到PageTitle就是Tab的Text
@Override
public CharSequence getPageTitle(int position) {
return Constants.lstProgressType.get(position).getName();
}
};
mViewpager.setAdapter(mAdapter);
mViewpager.setOffscreenPageLimit( Constants.lstProgressType.size()+1);
tabLayout.setViewPager(mViewpager);
// tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
mViewpager.setCurrentItem(0);
}
int tmp=0;
private void tabChanged() {
Log.d(TAG, String.format("tabChanged: to load data tmp %s" , tmp ));
tmp++;
if(lstSex==null) return;
if (mFragments == null ) {
mFragments = new ArrayList<BasicFragment>();
}
mFragments.clear();
mFragments.add(Fragment_booklist.newInstance(cate, Constants.lstProgressType.get(tabPos).getId()));
Log.d(TAG, "initial fragments in tabs ");
Log.d(TAG, "set viewPager adapter ");
// FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(activity.getSupportFragmentManager()) { 第一次进入没问题再次进入ViewPager的fragment时里面内容就没了,数据丢失 https://blog.csdn.net/allan_bst/article/details/64920076
FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
//ViewPager与TabLayout绑定后这里获取到PageTitle就是Tab的Text
@Override
public CharSequence getPageTitle(int position) {
return mTitle[position];
}
};
mViewpager.setAdapter(mAdapter);
mViewpager.setOffscreenPageLimit(2);
// tabLayout.setViewPager(mViewpager);
// tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
mViewpager.setCurrentItem(0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.booksearch, menu);
return true;
}
private void creatToolbar() {
setSupportActionBar(toolbar);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int menuItemId = item.getItemId();
if(menuItemId==R.id.menuSearch){
Intent intent = new Intent(Activity_cate_books.this, Activity_Search.class);
startActivity(intent);
}
return true;
}
});
}
}