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

221 lines
6.7 KiB
Plaintext
Raw Normal View History

2024-02-06 22:23:29 +08:00
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;
}
});
}
}