android之PopUpWindow顯示Listview(檔案列表)
阿新 • • 發佈:2019-01-04
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" > <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" > <TextView android:id="@+id/text" 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" ></ListView> </LinearLayout>
mainActivity
package com.android.demo; import java.io.File; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os.Environment; import android.view.LayoutInflater; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.TextView; public class mainActivity extends Activity { private Button myButton; private String[] name; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myButton = (Button)findViewById(R.id.button); myButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub initPopWindow(); }}); } private void initPopWindow(){ View contentView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.popupwindow, null); contentView.setBackgroundColor(Color.BLUE); PopupWindow popupWindow = new PopupWindow(findViewById(R.id.mainLayout), 200, 700); popupWindow.setContentView(contentView); TextView textView = (TextView) contentView.findViewById(R.id.text); textView.setText("測試"); openDir(); ListView listView = (ListView) contentView.findViewById(R.id.list); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, name); listView.setAdapter(adapter); popupWindow.setFocusable(true); popupWindow.showAsDropDown(myButton); } private void openDir() { String rootPath = Environment.getExternalStorageDirectory().getAbsolutePath(); File file = new File(rootPath); File[] files = file.listFiles(); name = new String[files.length]; for(int i=0;i<files.length;i++){ name[i]=files[i].getName(); System.out.println(name[i]); } } }
結果如圖