android之popupwindow显示文件列表
16lz
2021-01-26
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(); }}效果上图
更多相关文章
- popuwindow
- Android:StartActivies(Intent[] intents)用法
- android 在WebView打开网页
- EditText与退格键的冲突问题
- android BottomSheetDialog新控件解析,实现知乎评论列表效果
- 实现IOS版的抽屉效果(点击,拖拽滑动)
- Android(安卓)RIL源码研究笔记 の ril_command (一)
- Android提高篇之自定义dialog实现processDialog“正在加载”效果
- 【Android(安卓)Demo】图片之画廊效果(Gallery Switcher)