package net.dev123.yibo.service.listener; import net.dev123.commons.util.StringUtil; import net.dev123.mblog.entity.Group; import net.dev123.yibo.GroupActivity; import net.dev123.yibo.GroupMemberActivity; import net.dev123.yibo.R; import net.dev123.yibo.common.SelectMode; import net.dev123.yibo.service.adapter.AdapterUtil; import net.dev123.yibo.service.adapter.CacheAdapter; import net.dev123.yibo.service.adapter.GroupListAdapter; import net.dev123.yibo.service.task.GroupAddTask; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Adapter; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText; public class GroupItemClickListener implements OnItemClickListener { private GroupActivity context; public GroupItemClickListener(GroupActivity context) { this.context = context; } @SuppressWarnings("unchecked") @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Adapter adapter = parent.getAdapter(); final CacheAdapter<Group> cacheAdapter = (CacheAdapter<Group>)AdapterUtil.getCacheAdapter(adapter); if (position >= cacheAdapter.getCount()) { return; } //final LocalAccount account = cacheAdapter.getAccount(); Group group = (Group)cacheAdapter.getItem(position); if (position == 0) { final EditText editText = new EditText(context); new AlertDialog.Builder(context) .setIcon(R.drawable.icon_group) .setTitle(R.string.title_dialog_add_group) .setView(editText) .setPositiveButton(R.string.btn_confirm, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { String groupName = editText.getEditableText().toString(); if (StringUtil.isNotEmpty(groupName)) { GroupAddTask task = new GroupAddTask( (GroupListAdapter)cacheAdapter, groupName); task.execute(); } } }) .setNegativeButton(R.string.btn_cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { /* User clicked cancel so do some stuff */ } }) .create().show(); } else { Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("SELECT_MODE", SelectMode.Multiple.toString()); bundle.putSerializable("GROUP", group); intent.putExtras(bundle); intent.setClass(context, GroupMemberActivity.class); context.startActivity(intent); } } }