第四章、android入门


目录
  • 安卓入门
    • 七、ViewPager
      • 1、ViewPager
    • 八、Fragment
      • 1、基本使用
      • 2、动态添加Fragment

安卓入门

七、ViewPager

1、ViewPager
  • layout1.xml、layout2.xml、layout3.xml
<?xml version="1.0" encoding="utf-8"?>


    


  • activity_main.xml
<?xml version="1.0" encoding="utf-8"?>


    


  • MyAdapter
public class MyAdapter extends PagerAdapter {
    private List mListView;

    public MyAdapter(List mListView) {
        this.mListView = mListView;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        container.addView(mListView.get(position), 0);
        return mListView.get(position);
    }

    @Override
    public int getCount() {
        return mListView.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view == object;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(mListView.get(position));
    }
}
  • MainActivity
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LayoutInflater lf = getLayoutInflater().from(this);
        View view1 = lf.inflate(R.layout.layout1, null);
        View view2 = lf.inflate(R.layout.layout2, null);
        View view3 = lf.inflate(R.layout.layout3, null);

        ArrayList viewList = new ArrayList<>();
        viewList.add(view1);
        viewList.add(view2);
        viewList.add(view3);

        ViewPager viewPager = findViewById(R.id.vp);
        MyAdapter myAdapter = new MyAdapter(viewList);
        viewPager.setAdapter(myAdapter);
    }
}

八、Fragment

1、基本使用
  • BlankFragment
public class BlankFragment extends Fragment {

    private View root;
    private TextView tv;
    private Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        if (root == null) {
            root = inflater.inflate(R.layout.fragment_blank, container, false);
        }
        tv = root.findViewById(R.id.tv);
        btn = root.findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText("世界");
            }
        });

        return root;
    }
}
  • fragment_blank.xml
<?xml version="1.0" encoding="utf-8"?>


    

    
  • activity_main.xml
<?xml version="1.0" encoding="utf-8"?>


    


2、动态添加Fragment
  • activity_main.xml
<?xml version="1.0" encoding="utf-8"?>


    
  • MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        View btn1 = findViewById(R.id.btn1);
        btn1.setOnClickListener(this);
        View btn2 = findViewById(R.id.btn2);
        btn2.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn1) {
            replaceFragment(new BlankFragment());
        } else if (v.getId() == R.id.btn2) {
            replaceFragment(new ItemFragment());
        }
    }

    private void replaceFragment(Fragment fragment) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.fl, fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }
}