private void showNoticeDialog() { // 获取LayoutInflater实例 LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); // 使用LayoutInflater加载弹窗布局 View popupView = inflater.inflate(R.layout.notices, null); // 获取屏幕密度 float density = getResources().getDisplayMetrics().density; // 设置宽度和高度为300dp int widthInPx = Math.round(500 * density); // 300 dp 转换为像素 int heightInPx = Math.round(300 * density); // 300 dp 转换为像素 // 创建PopupWindow实例并设置宽度和高度 final PopupWindow popupWindow = new PopupWindow(popupView, widthInPx, // 宽度 (像素) heightInPx, // 高度 (像素) true); // 设置弹窗可聚焦 // 设置点击外部区域关闭弹窗 popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); // 显示弹窗 View parentView = findViewById(android.R.id.content); // 替换为你需要的父视图 popupWindow.showAtLocation(parentView, Gravity.CENTER, 0, 0); ImageView closeButton = popupView.findViewById(R.id.back); closeButton.setOnClickListener(v -> popupWindow.dismiss()); // 获取TextView并设置点击事件 TextView title1 = popupView.findViewById(R.id.titl1); TextView title2 = popupView.findViewById(R.id.titl2); TextView title3 = popupView.findViewById(R.id.titl3); TextView title4 = popupView.findViewById(R.id.titl4); title1.setOnClickListener(v -> handleTextViewClick(1)); title2.setOnClickListener(v -> handleTextViewClick(2)); title3.setOnClickListener(v -> handleTextViewClick(3)); title4.setOnClickListener(v -> handleTextViewClick(4)); }
// 点击事件处理方法 private void handleTextViewClick(int index) { switch (index) { case 1: // 处理第一个TextView的点击事件 Toast.makeText(this, "Title 1 clicked", Toast.LENGTH_SHORT).show(); break; case 2: // 处理第二个TextView的点击事件 Toast.makeText(this, "Title 2 clicked", Toast.LENGTH_SHORT).show(); break; case 3: // 处理第三个TextView的点击事件 Toast.makeText(this, "Title 3 clicked", Toast.LENGTH_SHORT).show(); break; case 4: // 处理第四个TextView的点击事件 Toast.makeText(this, "Title 4 clicked", Toast.LENGTH_SHORT).show(); break; } }