package com.topcee.report.report;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.PopupWindow;import android.widget.TextView;import com.topcee.report.R;import java.util.ArrayList;import java.util.List;public class HomeActivity extends Activity {    private Context context;    private List reportList;    private List productList;    private TextView tvReport;    private TextView tvProduct;    private TextView tvCompany;    private String reportName = "";    private String productName = "";    private String companyName = "";    private ListView lvData;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_home);        context = HomeActivity.this;        initView();    }    private void initView(){        lvData = findViewById(R.id.lv_data);        lvData.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {            }        });        tvReport = findViewById(R.id.tv_report);        tvProduct = findViewById(R.id.tv_product);        tvCompany = findViewById(R.id.tv_company);        tvReport.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                showReportDialog();            }        });        tvProduct.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                showProductDialog();            }        });        tvCompany.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                           }        });    }    /**     * 报表弹窗     */    private void showReportDialog(){        reportList = new ArrayList<>();        reportList.add("生产报表");        reportList.add("设备报表");        reportList.add("抛料率报表");        reportList.add("在线预警报表");        View view = LayoutInflater.from(context).inflate(R.layout.popupwindow, null);        // 为了演示效果,简单的设置了一些数据,实际中大家自己设置数据即可,相信大家都会。        ListView lsvMore = (ListView) view.findViewById(R.id.lsvMore);        lsvMore.setAdapter(new ArrayAdapter(context, android.R.layout.simple_list_item_1, reportList));        // 创建PopupWindow对象,指定宽度和高度        PopupWindow window = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);        window.setWidth(tvReport.getWidth());        // 设置动画//        window.setAnimationStyle(R.style.popup_window_anim);        // 设置背景颜色        window.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));        // 设置可以获取焦点        window.setFocusable(true);        // 设置可以触摸弹出框以外的区域        window.setOutsideTouchable(true);        // 更新popupwindow的状态        window.update();        // 以下拉的方式显示,并且可以设置显示的位置//        window.showAsDropDown(tvReport, 0, 20);        window.showAtLocation(tvReport, Gravity.LEFT | Gravity.BOTTOM, 0, 50);//这里的50是因为我底部按钮的高度是50        lsvMore.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                if("生产报表".equals(reportName)){                }            }        });    }    /**     * 生产情况弹窗     */    private void showProductDialog(){        productList = new ArrayList<>();        productList.add("生产描述");        productList.add("生产进度");        productList.add("生产指标");        productList.add("异常信息");        View view = LayoutInflater.from(context).inflate(R.layout.popupwindow, null);        // 为了演示效果,简单的设置了一些数据,实际中大家自己设置数据即可,相信大家都会。        ListView lsvMore = view.findViewById(R.id.lsvMore);        lsvMore.setAdapter(new ArrayAdapter(context, android.R.layout.simple_list_item_1, productList));        // 创建PopupWindow对象,指定宽度和高度        PopupWindow window = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);        window.setWidth(tvProduct.getWidth());        // 设置动画//        window.setAnimationStyle(R.style.popup_window_anim);        // 设置背景颜色        window.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));        // 设置可以获取焦点        window.setFocusable(true);        // 设置可以触摸弹出框以外的区域        window.setOutsideTouchable(true);        // 更新popupwindow的状态        window.update();        // 以下拉的方式显示,并且可以设置显示的位置//        window.showAsDropDown(tvProduct, 0, 20);        window.showAtLocation(tvProduct, Gravity.CENTER | Gravity.BOTTOM, 0, 50);        lsvMore.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                productName = productList.get(position);//获取点击的状态名字            }        });    }}

activity_home.xml
<?xml version="1.0" encoding="utf-8"?>                                                                                                    

btn_pressed.xml
<?xml version="1.0" encoding="utf-8"?>        
triangle_bg.xml
<?xml version="1.0" encoding="utf-8"?>                                                                                                                                
triangle_bg_pressed.xml
<?xml version="1.0" encoding="utf-8"?>                                                                                                                                

这里本来是想在右下角显示一个小三角形的,不知道为啥不显示,给它单独拿出来设置宽度和高度就显示。希望有知道的给我解惑一下。大家知识共享。

popupwindow.xml
<?xml version="1.0" encoding="utf-8"?>    

这是最终的效果。

更多相关文章

  1. android中设置分割线
  2. android主页框架FragmentTabHost+ViewPager,左右滑动
  3. android studio 57 MP3 音乐播放器 下载网络歌曲 代码
  4. Android中GPRS 开关
  5. Android(安卓)两种方式实现圆形头像
  6. android跳转至权限设置界面
  7. Android获取、设置音频的音量大小
  8. FragmentTabHost QQ 选项卡
  9. Android常用控件技巧总结

随机推荐

  1. Android(安卓)本地推送消息到通知栏 Noti
  2. Android(安卓)线程池框架、Executor、Thr
  3. EditText弹出软件盘时不进行全屏
  4. Android(安卓)SDK Manager
  5. android 开发的必备工具
  6. Handler消息传递机制
  7. Android(安卓)RadioGroup中横向、竖向布
  8. android NDK 教程一(初识JNI--hello world
  9. Android编译系统简要介绍和学习计划
  10. android启动加速