Android popowindow弹出列表 代码
时间: 2024-02-23 15:02:17 浏览: 18
好的,下面是一个简单的例子,演示如何在 Android 中使用 PopupWindow 弹出列表:
1. 首先,在你的布局文件中添加一个 Button 控件,用于触发弹出 PopupWindow。
```
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Popup" />
```
2. 接下来,在 Java 代码中,获取到 Button 控件,并设置其点击事件。
```
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPopupWindow(v);
}
});
```
3. 在点击事件的回调中,创建一个 PopupWindow 对象,并设置其内容视图和大小。
```
private void showPopupWindow(View view) {
// 创建一个 PopupWindow 对象
PopupWindow popupWindow = new PopupWindow(this);
// 设置 PopupWindow 的内容视图
View contentView = LayoutInflater.from(this).inflate(R.layout.popup_window, null);
popupWindow.setContentView(contentView);
// 设置 PopupWindow 的大小
popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
// 显示 PopupWindow
popupWindow.showAsDropDown(view);
}
```
4. 在弹出的 PopupWindow 中添加一个 ListView 控件,并设置其适配器和数据。
```
private void showPopupWindow(View view) {
// 创建一个 PopupWindow 对象
PopupWindow popupWindow = new PopupWindow(this);
// 设置 PopupWindow 的内容视图
View contentView = LayoutInflater.from(this).inflate(R.layout.popup_window, null);
ListView listView = contentView.findViewById(R.id.list_view);
listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, new String[]{"Item 1", "Item 2", "Item 3"}));
popupWindow.setContentView(contentView);
// 设置 PopupWindow 的大小
popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
// 显示 PopupWindow
popupWindow.showAsDropDown(view);
}
```
5. 最后,在列表项的点击事件中,执行相应的操作。
```
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 在这里执行相应的操作
Toast.makeText(MainActivity.this, "Clicked item " + (position + 1), Toast.LENGTH_SHORT).show();
popupWindow.dismiss(); // 关闭 PopupWindow
}
});
```
以上就是一个简单的例子,演示了如何在 Android 中使用 PopupWindow 弹出列表。你可以根据自己的需求进行修改和扩展。