频道管理-------activity

import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import com.example.pindao.base.BaseActivity;
import com.example.pindao.bean.Chan;
import com.example.pindao.db.ChanDao;
import com.example.pindao.fragment.NewsFragment;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends BaseActivity implements View.OnClickListener {
    private ViewPager vpNews;
    private ImageView btnAddChan;
    private TabLayout tabTitle;

    private List<Chan> chanList;
    private ChanDao dao;
    private FragmentPagerAdapter vpAdapter;
    public static final int REQUEST_CODE = 100;

    @Override//连接布局页面
    protected int getContentView() {
        return R.layout.activity_main;
    }
    @Override//初始化控件
    protected void initView() {
        vpNews = findViewById(R.id.vp_news);
        btnAddChan = findViewById(R.id.btn_add_chan);
        tabTitle = findViewById(R.id.tab_title);
    }

    @Override
    protected void initData() {
        super.initData();
        chanList = new ArrayList<>();
        dao = new ChanDao(this);
        addData();

        vpAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                return NewsFragment.newInstance(chanList.get(position).getParma());
            }

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

            @Nullable
            @Override
            public CharSequence getPageTitle(int position) {
                return chanList.get(position).getName();
            }
        };

        vpNews.setAdapter(vpAdapter);
        tabTitle.setTabMode(TabLayout.MODE_SCROLLABLE);
        tabTitle.setupWithViewPager(vpNews);
    }

    @Override
    protected void onResume() {
        super.onResume();
        chanList.clear();
        List<Chan> chanL = dao.queryAll();
        for (Chan chan : chanL){
            if (chan.getType() == 1){
                chanList.add(chan);
            }
        }
        vpAdapter.notifyDataSetChanged();
    }

    @Override
    protected void setListener() {
        super.setListener();
        btnAddChan.setOnClickListener(this);
    }

    private void addData() {
        List<Chan> list = dao.queryAll();
        for (Chan chan : list){
            if (chan.getType() == 1){
                chanList.add(chan);
            }
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_add_chan:
                Intent intent = new Intent(MainActivity.this,ChanActivity.class);
                startActivityForResult(intent,REQUEST_CODE);
                break;
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK){
            int index = data.getIntExtra("index",0);
            vpNews.setCurrentItem(index);
        }
    }
}

chanactivity

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.TextView;

import com.example.pindao.adapter.MyChanAdapter;
import com.example.pindao.adapter.RecomChanAdapter;
import com.example.pindao.base.BaseActivity;
import com.example.pindao.bean.Chan;
import com.example.pindao.db.ChanDao;

import java.util.ArrayList;
import java.util.List;

public class ChanActivity extends BaseActivity implements View.OnClickListener {
    private ChanDao dao;
    private TextView textFinish;
    private GridView mgvMyChan;
    private GridView mgvRecommondChan;

    private List<Chan> myChans;
    private List<Chan> recommondChans;

    private MyChanAdapter myChanAdapter;
    private RecomChanAdapter recomChanAdapter;

    //判断是否是编辑状态
    private boolean isEditable = false;

    @Override
    protected int getContentView() {
        return R.layout.activity_chan;
    }

    @Override
    protected void initView() {
        textFinish = findViewById(R.id.text_finish);
        mgvMyChan = findViewById(R.id.mgv_my_chan);
        mgvRecommondChan = findViewById(R.id.mgv_recommond_chan);
    }

    @Override
    protected void initData() {
        super.initData();
        myChans = new ArrayList<>();
        recommondChans = new ArrayList<>();
        dao = new ChanDao(this);
        addData();

        myChanAdapter = new MyChanAdapter(myChans,this);
        recomChanAdapter = new RecomChanAdapter(recommondChans,this);

        myChanAdapter.setOnItemDeleteClickListener(new MyChanAdapter.OnItemDeleteClickListener() {
            @Override
            public void onDeleteClick(int position) {
                Chan chan = myChans.get(position);
                chan.setType(2);
                recommondChans.add(chan);
                myChans.remove(position);

                myChanAdapter.notifyDataSetChanged();
                recomChanAdapter.notifyDataSetChanged();
                dao.update(chan);
            }
        });

        mgvMyChan.setAdapter(myChanAdapter);
        mgvRecommondChan.setAdapter(recomChanAdapter);

    }

    @Override
    protected void setListener() {
        super.setListener();
        //完成按钮切换
        textFinish.setOnClickListener(this);

        mgvMyChan.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent();
                intent.putExtra("index",position);
                setResult(RESULT_OK , intent);
                finish();
            }
        });

        mgvRecommondChan.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Chan chan = recommondChans.get(position);
                chan.setType(1);

                myChans.add(chan);
                recommondChans.remove(position);
                myChanAdapter.notifyDataSetChanged();
                recomChanAdapter.notifyDataSetChanged();
                dao.update(chan);
            }
        });
    }

    private void addData() {
        List<Chan> list = dao.queryAll();
        for (Chan chan : list){
            if (chan.getType() == 1){
                myChans.add(chan);
            }else {
                recommondChans.add(chan);
            }
        }

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.text_finish:
                isEditable = !isEditable;
                myChanAdapter.setEditable(isEditable);
                if (isEditable){
                    textFinish.setText("完成");
                }else {
                    textFinish.setText("编辑");
                }
                break;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/yz1743585120/article/details/82792143
今日推荐