package com.roboo.like.netease; import java.util.LinkedList; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.view.ActionMode; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AbsListView.MultiChoiceModeListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.Toast; import com.roboo.like.netease.adapter.DSLVAdapter; import com.roboo.like.netease.dao.INewsCategoryDao; import com.roboo.like.netease.dao.impl.NewsCategoryDaoImpl; import com.roboo.like.netease.database.DBHelper; import com.roboo.like.netease.model.NewsCategory; @SuppressLint("NewApi") public class AddSubscribeActivity extends BaseActivity { private ListView mListView; private MyActionModeCallBack mActionModeCallBack; private DSLVAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTVTitle(R.string.tv_subscribe_interested); // TODO setContentView Tag setContentView(R.layout.activity_add_subscribe); initView(); this.mListView.setAdapter(getAdapter()); setListener(); } private void initView() { this.mListView = (ListView) findViewById(R.id.lv_list); } public DSLVAdapter getAdapter() { INewsCategoryDao newsCategoryDao = new NewsCategoryDaoImpl(new DBHelper(this)); LinkedList<NewsCategory> data = newsCategoryDao.getUnCustomedList(); if(null != data) { mAdapter = new DSLVAdapter(data, this); } return mAdapter; } private void setListener() { mActionModeCallBack = new MyActionModeCallBack(); this.mListView.setMultiChoiceModeListener(mActionModeCallBack); this.mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { NewsCategory newsCategory = (NewsCategory) parent.getAdapter().getItem(position); Intent intent = new Intent(AddSubscribeActivity.this,NewsActivity.class); intent.putExtra("newsCategory", newsCategory); startActivity(intent); } }); } private void setSubtitle(ActionMode mode) { final int checkedCount = mListView.getCheckedItemCount(); switch (checkedCount) { case 0: mode.setSubtitle(null); break; case 1: mode.setSubtitle("1个被选中"); break; default: mode.setSubtitle("" + checkedCount + "个被选中"); break; } } private class MyActionModeCallBack implements MultiChoiceModeListener { @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return true; } @Override public void onDestroyActionMode(ActionMode mode) { Toast.makeText(getBaseContext(), "完成", Toast.LENGTH_SHORT).show(); finish(); } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.setTitle("选中栏目"); setSubtitle(mode); MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.action_mode_menu, menu); return true; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { Toast.makeText(AddSubscribeActivity.this, "KKK", Toast.LENGTH_SHORT).show(); return true; } @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { INewsCategoryDao newsCategoryDao = new NewsCategoryDaoImpl(new DBHelper(AddSubscribeActivity.this)); newsCategoryDao.updateNewsCategoryState(((NewsCategory)mAdapter.getItem(position)).getNewsCategoryMD5(), checked); setSubtitle(mode); } }; }