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; } } }