package com.lee.listViewitem;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
public class TestListViewItemActivity extends Activity implements OnItemClickListener, OnItemLongClickListener {
private ListView noteBookslist;
private NoteBookAdapter noteBookAdapter;
private List<String> fileTypeList;
private int currentPosition = -1;
private int mSingleChoiceID = -1;
private String[] mItems;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note_list);
initView();
setData();
}
private void initView() {
noteBookslist = (ListView) findViewById(R.id.notebook_list);
noteBookslist.setOnItemClickListener(this);
noteBookslist.setOnItemLongClickListener(this);
}
private void setData() {
fileTypeList = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
fileTypeList.add("Test" + i);
}
if (noteBookAdapter == null) {
noteBookAdapter = new NoteBookAdapter(this, fileTypeList);
noteBookslist.setAdapter(noteBookAdapter);
} else {
noteBookAdapter.notifyDataSetChanged();
}
}
@Override
protected void onResume() {
updateNoteBookList();
super.onResume();
}
private void updateNoteBookList() {
if (noteBookAdapter != null) {
setData();
noteBookAdapter.notifyDataSetChanged();
}
}
@Override
public void onItemClick(AdapterView<?> listview, View arg1, int position, long arg3) {
currentPosition = -1;
noteBookAdapter.notifyDataSetChanged();
}
@Override
public boolean onItemLongClick(AdapterView<?> listview, View arg1, int position, long arg3) {
Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
vibrator.vibrate(40);
currentPosition = position;
noteBookAdapter.notifyDataSetChanged();
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.finish();
}
return super.onKeyDown(keyCode, event);
}
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 1) {
noteBookAdapter.notifyDataSetChanged();
}
}
};
class NoteBookAdapter extends BaseAdapter {
private Context context;
private LayoutInflater inflater;
private List<String> fileTypeList;
public NoteBookAdapter(Activity activity, List<String> fileTypeList) {
this.context = activity;
this.fileTypeList = fileTypeList;
inflater = LayoutInflater.from(context);
}
public int getCount() {
return fileTypeList.size();
}
public int getItemViewType(int position) {
return position;
}
public Object getItem(int arg0) {
return fileTypeList.get(arg0);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_comm_note, parent, false);
holder = new ViewHolder();
holder.fileNameText = (TextView) convertView.findViewById(R.id.item_name);
holder.fileTimeText = (TextView) convertView.findViewById(R.id.item_time);
holder.fileSizeText = (TextView) convertView.findViewById(R.id.item_pm);
holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.layout_other);
holder.openLinearLayout = (LinearLayout) convertView.findViewById(R.id.item_open);
holder.editLinearLayout = (LinearLayout) convertView.findViewById(R.id.item_edit);
holder.moveLinearLayout = (LinearLayout) convertView.findViewById(R.id.item_move);
holder.deleteLinearLayout = (LinearLayout) convertView.findViewById(R.id.item_delete);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String strs = fileTypeList.get(position);
holder.fileNameText.setText(strs);
holder.fileTimeText.setText("");
holder.fileSizeText.setText("");
if (position == currentPosition) {
holder.linearLayout.setVisibility(View.VISIBLE);
holder.openLinearLayout.setClickable(true);
holder.editLinearLayout.setClickable(true);
holder.moveLinearLayout.setClickable(true);
holder.deleteLinearLayout.setClickable(true);
holder.openLinearLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
currentPosition = -1;
}
});
holder.editLinearLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
currentPosition = -1;
}
});
holder.moveLinearLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(TestListViewItemActivity.this);
mSingleChoiceID = -1;
builder.setIcon(android.R.drawable.ic_dialog_info);
builder.setTitle("移动至");
builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mSingleChoiceID = whichButton;
}
});
builder.setPositiveButton("确\t定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (mSingleChoiceID > 0) {
currentPosition = -1;
handler.sendEmptyMessage(1);
}
}
});
builder.setNegativeButton("取\t消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.create().show();
}
});
holder.deleteLinearLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
currentPosition = -1;
fileTypeList.remove(position);
handler.sendEmptyMessage(1);
}
});
} else {
holder.linearLayout.setVisibility(View.GONE);
holder.openLinearLayout.setClickable(false);
holder.editLinearLayout.setClickable(false);
holder.moveLinearLayout.setClickable(false);
holder.deleteLinearLayout.setClickable(false);
}
return convertView;
}
class ViewHolder {
public TextView fileNameText;
public TextView fileTimeText;
public TextView fileSizeText;
public LinearLayout linearLayout;
public LinearLayout openLinearLayout;
public LinearLayout editLinearLayout;
public LinearLayout moveLinearLayout;
public LinearLayout deleteLinearLayout;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
listview点击显示下拉菜单
共54个文件
png:18个
class:18个
xml:9个
5星 · 超过95%的资源 需积分: 9 874 下载量 186 浏览量
2013-07-09
16:18:57
上传
评论 3
收藏 93KB ZIP 举报
温馨提示
listview点击显示下拉菜单,ListView的item点击显示隐藏的菜单,ListView的item点击显示隐藏的菜单
资源推荐
资源详情
资源评论
收起资源包目录
TestListViewItem.zip (54个子文件)
TestListViewItem
bin
classes.dex 12KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
list_divider.png 353B
group_arrow_right.png 424B
drawable-mdpi
edit_icon.png 250B
ic_launcher.png 2KB
move_icon.png 262B
open_icon.png 402B
delete_icon.png 277B
classes
com
lee
listViewitem
TestListViewItemActivity.class 5KB
TestListViewItemActivity$NoteBookAdapter$3$3.class 1KB
TestListViewItemActivity$NoteBookAdapter.class 4KB
R$layout.class 471B
R$id.class 699B
R$drawable.class 788B
TestListViewItemActivity$NoteBookAdapter$3$2.class 2KB
TestListViewItemActivity$1.class 1KB
TestListViewItemActivity$NoteBookAdapter$2.class 1KB
R$attr.class 346B
TestListViewItemActivity$NoteBookAdapter$1.class 1KB
R.class 595B
TestListViewItemActivity$NoteBookAdapter$3$1.class 2KB
TestListViewItemActivity$NoteBookAdapter$ViewHolder.class 1010B
R$string.class 514B
R$style.class 446B
TestListViewItemActivity$NoteBookAdapter$3.class 3KB
TestListViewItemActivity$NoteBookAdapter$4.class 2KB
resources.ap_ 18KB
TestListViewItem.apk 26KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
list_divider.png 1KB
group_arrow_right.png 424B
drawable
list_selector.xml 373B
list_selector1.xml 374B
values
colors.xml 196B
strings.xml 313B
styles.xml 569B
drawable-mdpi
edit_icon.png 250B
ic_launcher.png 3KB
move_icon.png 262B
open_icon.png 402B
delete_icon.png 277B
layout
item_comm_note.xml 7KB
main.xml 398B
note_list.xml 588B
assets
gen
com
lee
listViewitem
R.java 2KB
proguard.cfg 1KB
src
com
lee
listViewitem
TestListViewItemActivity.java 7KB
.project 852B
.classpath 364B
project.properties 360B
AndroidManifest.xml 810B
共 54 条
- 1
技术老男孩
- 粉丝: 2
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- libADLMIDI1-1.5.1-bp155.1.7.aarch64.rpm
- 基于python和resnet50的垃圾分类识别项目源码+全部数据.zip
- C语言进阶学习资料,关于预处理,文件处理,结构体,位移运算的学习 大学生期末复习资料,程序设计课程复习资料
- c++少儿编程专业教师使用资料
- box1234567890
- 少儿编程资料,c++少儿编程专业资料
- libADLMIDI1-1.5.1-bp156.2.6.aarch64.rpm
- java源码 仿360buy京东商城源码 京东JavaWeb项目源代码.rar
- libADLMIDI1-1.5.1-1.2.riscv64.rpm
- 基于ASP的BS架构工艺品展示系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页