public
class
MainActivity
extends
Activity
implements
OnItemClickListener,
OnClickListener, OnSlideListener {
private
static
final
String TAG =
"MainActivity"
;
private
ListViewCompat mListView;
private
List<messageitem> mMessageItems =
new
ArrayList<mainactivity.messageitem>();
private
SlideAdapter mSlideAdapter;
private
SlideView mLastSlideViewWithStatusOn;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private
void
initView() {
mListView = (ListViewCompat) findViewById(R.id.list);
for
(
int
i =
0
; i <
20
; i++) {
MessageItem item =
new
MessageItem();
if
(i %
3
==
0
) {
item.icOnRes= R.drawable.default_qq_avatar;
item.title =
"腾讯新闻"
;
item.msg =
"青岛爆炸满月:大量鱼虾死亡"
;
item.time =
"晚上18:18"
;
}
else
{
item.icOnRes= R.drawable.wechat_icon;
item.title =
"微信团队"
;
item.msg =
"欢迎你使用微信"
;
item.time =
"12月18日"
;
}
mMessageItems.add(item);
}
mSlideAdapter =
new
SlideAdapter();
mListView.setAdapter(mSlideAdapter);
mListView.setOnItemClickListener(
this
);
}
private
class
SlideAdapter
extends
BaseAdapter {
private
LayoutInflater mInflater;
SlideAdapter() {
super
();
mInflater = getLayoutInflater();
}
@Override
public
int
getCount() {
return
mMessageItems.size();
}
@Override
public
Object getItem(
int
position) {
return
mMessageItems.get(position);
}
@Override
public
long
getItemId(
int
position) {
return
position;
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
ViewHolder holder;
SlideView slideView = (SlideView) convertView;
if
(slideView ==
null
) {
View itemView = mInflater.inflate(R.layout.list_item,
null
);
slideView =
new
SlideView(MainActivity.
this
);
slideView.setContentView(itemView);
holder =
new
ViewHolder(slideView);
slideView.setOnSlideListener(MainActivity.
this
);
slideView.setTag(holder);
}
else
{
holder = (ViewHolder) slideView.getTag();
}
MessageItem item = mMessageItems.get(position);
item.slideView = slideView;
item.slideView.shrink();
holder.icon.setImageResource(item.iconRes);
holder.title.setText(item.title);
holder.msg.setText(item.msg);
holder.time.setText(item.time);
holder.deleteHolder.setOnClickListener(MainActivity.
this
);
return
slideView;
}
}
public
class
MessageItem {
public
int
iconRes;
public
String title;
public
String msg;
public
String time;
public
SlideView slideView;
}
private
static
class
ViewHolder {
public
ImageView icon;
public
TextView title;
public
TextView msg;
public
TextView time;
public
ViewGroup deleteHolder;
ViewHolder(View view) {
icon = (ImageView) view.findViewById(R.id.icon);
title = (TextView) view.findViewById(R.id.title);
msg = (TextView) view.findViewById(R.id.msg);
time = (TextView) view.findViewById(R.id.time);
deleteHolder = (ViewGroup) view.findViewById(R.id.holder);
}
}
@Override
public
void
onItemClick(AdapterView<&#
63
;> parent, View view,
int
position,
long
id) {
Log.e(TAG,
"onItemClick position="
+ position);
}
@Override
public
void
onSlide(View view,
int
status) {
if
(mLastSlideViewWithStatusOn !=
null
&& mLastSlideViewWithStatusOn != view) {
mLastSlideViewWithStatusOn.shrink();
}
if
(status == SLIDE_STATUS_ON) {
mLastSlideViewWithStatusOn = (SlideView) view;
}
}
@Override
public
void
onClick(View v) {
if
(v.getId() == R.id.holder) {
int
position = mListView.getPositionForView(v);
if
(position != ListView.INVALID_POSITION) {
mMessageItems.remove(position);
mSlideAdapter.notifyDataSetChanged();
}
Log.e(TAG,
"onClick v="
+ v);
}
}
}
</mainactivity.messageitem></messageitem>