KezhuanzhaiActivity.java 10.9 KB
package com.huaheng.tab;

import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;

import com.google.gson.Gson;
import com.huaheng.common.Constant;
import com.huaheng.common.WMSUtils;
import com.huaheng.common.adapter.AbsCommonAdapter;
import com.huaheng.common.adapter.AbsViewHolder;
import com.huaheng.common.model.BaseBean;
import com.huaheng.common.model.TableModel;
import com.huaheng.httplib.HttpInterface;
import com.huaheng.httplib.Subscribers.ProgressSubscriber;
import com.huaheng.httplib.Subscribers.SubscriberOnNextListener;
import com.huaheng.tab.bean.CellBean;
import com.huaheng.tab.bean.ConvertibleBean;
import com.huaheng.tab.bean.RowBean;
import com.huaheng.tab.util.TableActivity;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

import butterknife.ButterKnife;
import butterknife.OnClick;

public class KezhuanzhaiActivity extends TableActivity {

    private MyHandler myHandler = new MyHandler();
    private int DELAY = 5000;
    private List <RowBean> mRowBeans;

    @Override
    protected void initActivityOnCreate(Bundle savedInstanceState) {
        super.initActivityOnCreate(savedInstanceState);
        setButtonView(R.layout.activity_order_table);
        ButterKnife.bind(this);
        setTitle("可转债");
        initTableView();
    }

    @Override
    protected void onResume() {
        super.onResume();
        getFormView(pageNo, true);
    }

    @Override
    protected void onPause() {
        super.onPause();
        try {
            myHandler.removeMessages(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @OnClick({R.id.chooseBtn, R.id.freshBtn, R.id.kezhuanzhaiBtn})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.chooseBtn:
                showChoose();
                break;
            case R.id.freshBtn:
                getFormView(pageNo, true);
                break;
            case R.id.kezhuanzhaiBtn:
                WMSUtils.startActivity(mContext, QDIIActivity.class);
                break;
        }
    }


    public void initTableView() {
        addTitleText("可转债", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("现价", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("正股", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("正股价格", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("溢价率", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("双低值", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("剩余规模", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("成交量", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("换手率", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("评级", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("转股期", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("强赎价格", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("回售价格", Constant.TITLE_NORMAL_WIDTH);
        mRightAdapter = new AbsCommonAdapter <TableModel>(mContext, R.layout.table_right_item) {
            @Override
            public void convert(AbsViewHolder helper, TableModel item, final int pos) {
                LinearLayout linearLayout = helper.getView(R.id.tableLineLayout);
                linearLayout.removeAllViews();
                List <String> contentList = item.getContentList();
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(0));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(1));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(2));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(3));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(4));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(5));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(6));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(7));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(8));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(9));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(10));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(11));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(12));
            }
        };
    }

    private void showChoose() {
        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
        View view = LayoutInflater.from(mContext).inflate(R.layout.dialog_shaixuan, null);
        TextView cancel = view.findViewById(R.id.choosepage_cancel);
        TextView sure = view.findViewById(R.id.choosepage_sure);
        final EditText dvalueEdit = view.findViewById(R.id.dvalueEdit);
        final EditText priceEdit = view.findViewById(R.id.priceEdit);
        final Spinner spinnerContent = view.findViewById(R.id.spinnerContent);
        final Dialog dialog = builder.create();
        dialog.show();
        dialog.getWindow().setContentView(view);
        //使editext可以唤起软键盘
        dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
        cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        sure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String dvalue = dvalueEdit.getText().toString();
                String price = priceEdit.getText().toString();
                String market = spinnerContent.getSelectedItem().toString();
                int marketID = spinnerContent.getSelectedItemPosition();
                List <CellBean> cellBeans = (List) tableBeans;
                if (WMSUtils.isNotEmpty(dvalue)) {
                    cellBeans = cellBeans.stream().filter((CellBean cellBean) -> Double.parseDouble(cellBean.getDblow()) <= Double.parseDouble(dvalue)).collect(Collectors.toList());
                }
                if (WMSUtils.isNotEmpty(price)) {
                    cellBeans = cellBeans.stream().filter((CellBean cellBean) -> Double.parseDouble(cellBean.getPrice()) <= Double.parseDouble(price)).collect(Collectors.toList());
                }
                switch (marketID) {
                    case 1:
                        cellBeans = cellBeans.stream().filter((CellBean cellBean) -> cellBean.getStock_id().contains("sh60")).collect(Collectors.toList());
                        break;
                    case 2:
                        cellBeans = cellBeans.stream().filter((CellBean cellBean) -> cellBean.getStock_id().contains("sz00")).collect(Collectors.toList());
                        break;
                    case 3:
                        cellBeans = cellBeans.stream().filter((CellBean cellBean) -> cellBean.getStock_id().contains("sz30")).collect(Collectors.toList());
                        break;
                }
                tableBeans = (List) cellBeans;
                setData(tableBeans);
                dialog.dismiss();
            }
        });
    }

    @Override
    public void setDatas(List <BaseBean> baseBeans, int type) {
        List <TableModel> mDatas = new ArrayList <>();
        for (BaseBean baseBean : baseBeans) {
            TableModel tableMode = new TableModel();
            CellBean cellBean = (CellBean) baseBean;
            ArrayList <String> contentList = new ArrayList <>();
            contentList.add(cellBean.getBond_nm());
            contentList.add(cellBean.getPrice());
            contentList.add(cellBean.getStock_nm());
            contentList.add(cellBean.getSprice());
            contentList.add(cellBean.getPremium_rt());
            contentList.add(cellBean.getDblow());
            contentList.add(cellBean.getCurr_iss_amt());
            contentList.add(cellBean.getVolume());
            contentList.add(cellBean.getTurnover_rt());
            contentList.add(cellBean.getIssuer_rating_cd());
            contentList.add(cellBean.getConvert_cd());
            contentList.add(cellBean.getForce_redeem_price());
            contentList.add(cellBean.getPut_convert_price());
            tableMode.setContentList(contentList);
            mDatas.add(tableMode);
        }
        mRightAdapter.addData(mDatas, false);
        //加载数据成功,增加页数
        mDatas.clear();
    }




    private class MyHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 0:
                    getFormView(pageNo);
                    break;
                case 1:
                    upPageNo = (int) msg.obj;
                    getFormView(upPageNo, true);
                    break;
            }
        }
    }

    @Override
    protected void getTalbeByCondition(int page) {
        try {
            myHandler.removeMessages(0);
            Message msg = new Message();
            msg.what = 1;
            msg.obj = page;
            myHandler.sendMessage(msg);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void getFormView(int page) {
        getFormView(page, false);
    }

    private void getFormView(int page, boolean show) {
        upPageNo = page;
        ProgressSubscriber progressSubscriber = new ProgressSubscriber <String>(mContext, convertibleBeanListener);
        progressSubscriber.setShow(show);
        HttpInterface.getInsstance(mContext).getListData(progressSubscriber);
    }


    SubscriberOnNextListener convertibleBeanListener = new SubscriberOnNextListener <String>() {
        @Override
        public void onNext(String str) {
            ConvertibleBean convertibleBean = new Gson().fromJson(str, ConvertibleBean.class);
            List <RowBean> rowBeans = convertibleBean.getRows();
            mRowBeans = rowBeans;
            List <CellBean> cellBeans = mRowBeans.stream().map(RowBean::getCell).collect(Collectors.toList());
            cellBeans = cellBeans.stream().filter((CellBean cellBean) -> !cellBean.getVolume().equals("0.00")).collect(Collectors.toList());
            cellBeans = cellBeans.stream().sorted(Comparator.comparing(CellBean::getDblow)).collect(Collectors.toList());
            tableBeans = (List) cellBeans;
            setData(tableBeans);
        }

        @Override
        public void onError(String str) {

        }
    };


}