- Activity
package com.example.basepulltorefreshstuty.base;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import com.example.basepulltorefreshstuty.R;
/**
* @Date: 2019/1/10 11:30:59
* @Description:
*/
//jicAppCompatActivity
//设置成抽象方法
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layoutResId());
//调用方法
ivitView();
ivitData();
}
//布局抽象方法
public abstract int layoutResId();
//找控件抽象方法
public abstract void ivitView();
//数据抽象方法
public abstract void ivitData();
}
- Fragment
package com.example.basepulltorefreshstuty.base;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* @Auther: 不懂
* @Date: 2019/1/10 11:48:15
* @Description:
*/
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), layoutResID(), null);
//调用方法
ivitView(view);
ivitData();
return view;
}
//布局的抽象方法
public abstract int layoutResID();
//找控件的抽象方法
protected abstract void ivitView(View view);
//数据的抽象方法
protected abstract void ivitData();
}
- Activity继承
package com.example.basepulltorefreshstuty;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.example.basepulltorefreshstuty.base.BaseActivity;
import com.example.basepulltorefreshstuty.fragment.MyFragment;
import com.example.basepulltorefreshstuty.fragment.MyFragment2;
//继承后从新方法就可以了
public class MainActivity extends BaseActivity {
private TextView m_tv;
//设置布局
@Override
public int layoutResId() {
return R.layout.activity_main;
}
//找控件
@Override
public void ivitView() {
m_tv = findViewById(R.id.m_tv);
}
//数据
@Override
public void ivitData() {
m_tv.setText("用的是Activity的基类");
//自定义的Fragment方法
getManager();
}
//Fragment方法
private void getManager() {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
MyFragment myFragment = new MyFragment();
MyFragment2 myFragment2 = new MyFragment2();
transaction.add(R.id.m_fl, myFragment);
transaction.add(R.id.m_fl, myFragment2);
transaction.show(myFragment).hide(myFragment2);
transaction.commit();
}
}
- Frameng继承
package com.example.basepulltorefreshstuty.fragment;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.TableLayout;
import com.example.basepulltorefreshstuty.R;
import com.example.basepulltorefreshstuty.adapter.FragsAdapter;
import com.example.basepulltorefreshstuty.base.BaseFragment;
import java.util.ArrayList;
/**
* @Auther: 不懂
* @Date: 2019/1/10 11:58:06
* @Description:
*/
public class MyFragment extends BaseFragment {
private TabLayout tb;
private ViewPager vp;
//设置布局
@Override
public int layoutResID() {
return R.layout.myfragment;
}
//找控件
@Override
protected void ivitView(View view) {
tb = view.findViewById(R.id.tl);
vp = view.findViewById(R.id.vp);
}
//数据
@Override
protected void ivitData() {
//自定义方法
ArrayList<String> tbolist = getTbolist();
//子类的管理者
vp.setAdapter(new FragsAdapter(getChildFragmentManager(),tbolist));
//tablayout与viewpager关联
vp.setOffscreenPageLimit(tbolist.size());
tb.setupWithViewPager(vp);
}
//tab的集合
private ArrayList<String> getTbolist() {
ArrayList<String> tblist = new ArrayList<>();
tblist.add("推荐");
tblist.add("热门");
tblist.add("视频");
return tblist;
}
}