package popup.activity;
import java.io.File;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Environment;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
/**
* 此类用于浏览sd卡里面的文件并对文件进行删除操作
* @author dell
*
*/
public class MainActivity extends Activity {
/** Called when the activity is first created. */
Button myButton,submit,cancel;
ImageButton back;
PopupWindow window;
TextView pathText;
ListView fileList;
String rootPath;
File file;
File[] files;
File fileWhich=null;
private DisplayMetrics dm;
private float Swidth,Sheight,density;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton=(Button)findViewById(R.id.myButton);
myButton.setOnClickListener(new ButtonListener());
rootPath=Environment.getExternalStorageDirectory()+"";
System.out.println("rootPath-->"+rootPath);
dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
density = dm.density;
Swidth = dm.widthPixels*density*0.9f;
Sheight = dm.heightPixels*density*0.9f;
System.out.println("width-->"+Swidth+"--height--->"+Sheight+"---density--->"+density);
// View v = LayoutInflater.from(this).inflate(R.layout.main, null);
// popWindow(findViewById(R.layout.main));
// onItemLongClick();
}
//
private void popWindow(View parent) {
if (window == null) {
LayoutInflater lay = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = lay.inflate(R.layout.popup_window, null);
v.setBackgroundDrawable(getResources().getDrawable(R.drawable.pop_round_corner));
pathText=(TextView)v.findViewById(R.id.tip);
pathText.setText(rootPath);
fileList=(ListView)v.findViewById(R.id.lv);
fileList.setOnItemClickListener(new fileAdapterListener());
submit=(Button)v.findViewById(R.id.submit);
submit.setOnClickListener(new confirmListener());
cancel=(Button)v.findViewById(R.id.cancel);
cancel.setOnClickListener(new cancelListener());
back=(ImageButton)v.findViewById(R.id.backButton);
back.setOnClickListener(new backListener());
file=new File(rootPath);
files=file.listFiles();
System.out.println("item-->");
if(files != null){
fileList.setAdapter(new ScanFileAdapter(files, MainActivity.this));
fileList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
menu.add(0, 0, 0, "打开");
menu.add(0, 1, 0, "删除");
menu.add(0, 2, 0, "删除所有");
}
});
}
//
window = new PopupWindow(v, (int)Swidth,(int)Sheight);
}
//设置整个popupwindow的样式。
window.setBackgroundDrawable(getResources().getDrawable(R.drawable.pop_round_corner));
//使窗口里面的空间显示其相应的效果,比较点击button时背景颜色改变。
//如果为false点击相关的空间表面上没有反应,但事件是可以监听到的。
//listview的话就没有了作用。
window.setFocusable(true);//如果不设置setFocusable为true,popupwindow里面是获取不到焦点的,那么如果popupwindow里面有输入框等的话就无法输入。
window.update();
window.showAtLocation(parent, Gravity.CENTER_VERTICAL, 0, 0);
// window.showAsDropDown(parent);
// onItemLongClick();
ItemOnLongClick2();
}
//
class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(window != null){
if(window.isShowing()){
window.dismiss();
// window=null;
}
else {
window.showAtLocation(v, Gravity.CENTER_VERTICAL, 0, 0);;
}
}
else{
popWindow(v);
}
}
}
//
class fileAdapterListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
File file3=new File(pathText.getText().toString());
File[] files3=file3.listFiles();
if(files3[arg2].isDirectory()){
File file1=new File(files3[arg2].getAbsolutePath());
File[] files1=file1.listFiles();
// System.out.println("item-->"+files1.length);
if(files1 != null){
fileList.setAdapter(new ScanFileAdapter(files1, MainActivity.this));
String s=files3[arg2].getAbsolutePath();//pathText.getText().toString()+files[arg2].getName()+"/";
pathText.setText(s);
}
}
else{
fileWhich=files3[arg2];
}
}
}
//ListView长按响应函数
private void onItemLongClick(){
if(fileList != null)
fileList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
menu.add(0, 0, 0, "打开");
menu.add(0, 1, 0, "删除");
menu.add(0, 2, 0, "删除所有");
}
});
else Log.i("meg--------->", fileList.toString());
}
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterView.AdapterContextMenuInfo info=(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
final int id=(int)info.id;
// System.out.println("infoID-->"+info.id);
switch(item.getItemId()){
case 0:
// File file3=new File(pathText.getText().toString());
// File[] files3=file3.listFiles();
// if(files3[id].isDirectory()){
// File file1=new File(files3[id].getAbsolutePath());
// File[] files1=file1.listFiles();
// System.out.println("item-->"+files1.length);
// fileList.setAdapter(new ScanFileAdapter(files1, MainActivity.this));
// String s=files3[id].getAbsolutePath();//pathText.getText().toString()+files[arg2].getName()+"/";
// pathText.setText(s);
// }
// else{
// fileWhich=files3[id];
// }
break;
case 1:
File file = (File)fileList.getAdapter().getItem(id);
System.out.println("filename-->"+file.getAbsolutePath());
break;
case 2:
break;
}
return super.onContextItemSelected(item);
}
//
private void ItemOnLongClick2() {
fileList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,final int arg2, long arg3) {
final String s[]={"打开","删除","全部删除"};
new AlertDialog.Builder(MainActivity.this)
.setTitle("请选择")
.setItems(s,//R.array.arrcontent,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
// String[] PK = getResources().getStringArray(R.array.arrcontent);
Toast.makeText(MainActivity.this,s[which],Toast.LENGTH_LONG).show();
if (s[which].equals("删除"))
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
PopupWindowTest.rar (55个子文件)
PopupWindowTest
.project 851B
project.properties 360B
proguard.cfg 1KB
src
popup
activity
MainActivity.java 12KB
AndroidManifest.xml 823B
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
doc.png 4KB
back02.png 4KB
ic_launcher.png 4KB
round_corner.xml 371B
pop_round_corner.xml 372B
folder.png 4KB
drawable-mdpi
item_bg.xml 534B
ic_launcher.png 3KB
listview_item_background.xml 923B
layout
scan_file.xml 738B
popup_window.xml 2KB
main.xml 444B
values
color.xml 205B
strings.xml 185B
assets
gen
popup
activity
BuildConfig.java 156B
R.java 2KB
.classpath 364B
bin
resources.ap_ 20KB
PopupWindowTest.apk 29KB
classes
popup
activity
R$layout.class 451B
MainActivity$fileAdapterListener.class 2KB
MainActivity$3$2.class 888B
MainActivity$ViewHolder.class 577B
BuildConfig.class 337B
R$drawable.class 637B
R$attr.class 328B
MainActivity$backListener.class 2KB
MainActivity$ButtonListener.class 1KB
MainActivity$cancelListener.class 835B
MainActivity$3$1.class 3KB
R$id.class 594B
MainActivity$confirmListener.class 722B
MainActivity$2.class 1KB
R.class 547B
R$string.class 415B
MainActivity$1.class 1KB
MainActivity$3.class 2KB
MainActivity.class 7KB
R$color.class 438B
MainActivity$ScanFileAdapter.class 2KB
AndroidManifest.xml 823B
jarlist.cache 119B
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
doc.png 2KB
back02.png 1KB
ic_launcher.png 4KB
folder.png 942B
drawable-mdpi
ic_launcher.png 2KB
classes.dex 15KB
共 55 条
- 1
资源评论
txwzj
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功