main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/mainLayout"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical"     android:background="@drawable/image1">    <Button         android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="确定"        /></LinearLayout>

popupwindow.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" ><Button     android:id="@+id/myButton"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="返回主目录"    />    <ListView         android:id="@+id/list"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        /></LinearLayout>
mainActivity

package com.android.demo;import java.io.File;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.os.Environment;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.PopupWindow;public class mainActivity extends Activity {private Button myButton;List<String> items=new ArrayList<String>();List<String> paths=new ArrayList<String>();private ArrayAdapter<String> adapter;private String rootPath = Environment.getExternalStorageDirectory().getAbsolutePath();PopupWindow popupWindow;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                myButton = (Button)findViewById(R.id.button);        myButton.setOnClickListener(btLis);    }    private void initPopWindow(){        View contentView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.popupwindow, null);    contentView.setBackgroundColor(Color.BLACK);        if (popupWindow == null) {    popupWindow = new PopupWindow(findViewById(R.id.mainLayout), 200, 500);    popupWindow.setContentView(contentView);    Button mButton = (Button)contentView.findViewById(R.id.myButton);    mButton.setOnClickListener(btLis2);        ListView listView = (ListView) contentView.findViewById(R.id.list);        openDir(rootPath);        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);    listView.setAdapter(adapter);    listView.setOnItemClickListener(lvLis);     }    //获得popupwindow外的焦点    ColorDrawable cd = new ColorDrawable(-0000);      popupWindow.setBackgroundDrawable(cd);        popupWindow.setFocusable(true);    popupWindow.showAsDropDown(myButton);        }    private OnClickListener btLis = new OnClickListener(){@Overridepublic void onClick(View v) {initPopWindow();}};        private OnClickListener btLis2 = new OnClickListener(){@Overridepublic void onClick(View v) {openDir2(rootPath);System.out.println(items);}};        private OnItemClickListener lvLis = new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {File file = new File(paths.get(arg2));if(file.isDirectory()){openDir2(file.toString());}System.out.println(items);}    };        private void openDir(String path) { File file  = new File(path); File[] files = file.listFiles(); for(int i=0;i<files.length;i++){ File f = files[i]; items.add(f.getName()); paths.add(f.getPath()); } }        private void openDir2(String path) { File file  = new File(path); File[] files = file.listFiles();  items.clear(); paths.clear(); for(int i=0;i<files.length;i++){ File f = files[i]; items.add(f.getName()); paths.add(f.getPath()); } adapter.notifyDataSetChanged(); }}
效果上图



更多相关文章

  1. popuwindow
  2. Android:StartActivies(Intent[] intents)用法
  3. android 在WebView打开网页
  4. EditText与退格键的冲突问题
  5. android BottomSheetDialog新控件解析,实现知乎评论列表效果
  6. 实现IOS版的抽屉效果(点击,拖拽滑动)
  7. Android(安卓)RIL源码研究笔记 の ril_command (一)
  8. Android提高篇之自定义dialog实现processDialog“正在加载”效果
  9. 【Android(安卓)Demo】图片之画廊效果(Gallery Switcher)

随机推荐

  1. Android手机开发:android:layout_weight属
  2. Android(安卓)SearchView和ListView的结
  3. 在qemu的beagleboard上运行android
  4. android gen 目录消失
  5. 转:Android电话系统之概述篇
  6. MAC下Android(安卓)Studio 1.4编译构建Co
  7. Android(安卓)启动引导页(动态生成底部导
  8. Android应用优化(7)数据库操作
  9. android 自定义控件(底部icon点击效果)
  10. Android开发之进程与线程