底部弹出框

package com.tandong.bottomview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import com.tandong.bottomview.adapter.BVAdapter;
import com.tandong.bottomview.adapter.BottomView;

import java.util.ArrayList;


/**
 * BottomView
 * <p>
 * www.aplesson.com
 *
 * @author TanDong
 */

public class MainActivity extends Activity implements OnClickListener {
    private Button btn_show;
    private ArrayList<InfoBean> menus;
    private BottomView bottomView;
    private ListView listView;
    private View view;


    private EditText etName;
    private EditText etSex;
    private EditText etAge;
    private Button btCertain;
    private Button btCancle;
    private BVAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initData();

    }


    private void initView() {
        btn_show = (Button) this.findViewById(R.id.btn_show);
        listView = (ListView) this.findViewById(R.id.lv_basic_info);
        view = findViewById(android.R.id.empty);

        btn_show.setOnClickListener(this);

    }


    private void initData() {
        menus = new ArrayList<InfoBean>();
        listView.setEmptyView(view);
        adapter = new BVAdapter(getApplicationContext(), menus);
        listView.setAdapter(adapter);
    }


    @Override
    public void onClick(View arg0) {
        switch (arg0.getId()) {
            case R.id.btn_show:
                bottomView = new BottomView(MainActivity.this,
                        R.style.BottomViewTheme_Defalut, R.layout.bottom_view);
                bottomView.setAnimation(R.style.BottomToTopAnim);
                bottomView.showBottomView(true);

                View view = bottomView.getView();
                etName = (EditText) view.findViewById(R.id.et_name);
                etSex = (EditText) view.findViewById(R.id.et_sex);
                etAge = (EditText) view.findViewById(R.id.et_age);
                btCertain = (Button) view.findViewById(R.id.bt_certain);
                btCancle = (Button) view.findViewById(R.id.bt_cancle);

                btCertain.setOnClickListener(this);
                btCancle.setOnClickListener(this);

                btCertain.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        InfoBean infoBean = new InfoBean();
                        String age = etAge.getText().toString();
                        String name = etName.getText().toString();
                        String sex = etSex.getText().toString();
                        infoBean.setAge(age);
                        infoBean.setName(name);
                        infoBean.setSex(sex);
                        menus.add(infoBean);
                        bottomView.dismissBottomView();
                        adapter.notifyDataSetChanged();

                    }
                });
                btCancle.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        bottomView.dismissBottomView();
                    }
                });
                break;


            default:
                break;
        }
    }

}
 
 
自定义View
package com.tandong.bottomview.adapter;

import android.app.Dialog;
import android.content.Context;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;

/**
 * Created by gaojh on 2017/11/12.
 */

public class BottomView {

    private View convertView;
    private Context context;
    private int theme;
    private Dialog bv;
    private int animationStyle;
    private boolean isTop = false;

    public BottomView(Context c, int theme, View convertView) {
        this.theme = theme;
        this.context = c;
        this.convertView = convertView;
    }

    public BottomView(Context context, int theme, int resource) {
        this.theme = theme;
        this.context = context;
        this.convertView = View.inflate(context, resource, (ViewGroup) null);
    }

    public void showBottomView(boolean CanceledOnTouchOutside) {
        if (this.theme == 0) {
            this.bv = new Dialog(this.context);
        } else {
            this.bv = new Dialog(this.context, this.theme);
        }

        this.bv.setCanceledOnTouchOutside(CanceledOnTouchOutside);
        this.bv.getWindow().requestFeature(1);
        this.bv.setContentView(this.convertView);
        Window wm = this.bv.getWindow();
        WindowManager m = wm.getWindowManager();
        Display d = m.getDefaultDisplay();
        WindowManager.LayoutParams p = wm.getAttributes();
        p.width = d.getWidth() * 1;
        if (this.isTop) {
            p.gravity = 48;
        } else {
            p.gravity = 80;
        }

        if (this.animationStyle != 0) {
            wm.setWindowAnimations(this.animationStyle);
        }

        wm.setAttributes(p);
        this.bv.show();
    }

    public void setTopIfNecessary() {
        this.isTop = true;
    }

    public void setAnimation(int animationStyle) {
        this.animationStyle = animationStyle;
    }

    public View getView() {
        return this.convertView;
    }

    public void dismissBottomView() {
        if (this.bv != null) {
            this.bv.dismiss();
        }

    }
}
BaseAdpter
package com.tandong.bottomview.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.tandong.bottomview.InfoBean;
import com.tandong.bottomview.R;

import java.util.ArrayList;

/**
 * BottomView
 * 
 * @author TanDong
 * 
 */
public class BVAdapter extends BaseAdapter {
   private Context c;
   private ArrayList<InfoBean> alss;

   public BVAdapter(Context context, ArrayList<InfoBean> als) {
      this.c = context;
      this.alss = als;
   }

   @Override
   public int getCount() {
      // TODO Auto-generated method stub
      return alss.size();
   }

   @Override
   public Object getItem(int arg0) {
      return alss.get(arg0);
   }

   @Override
   public long getItemId(int arg0) {
      // TODO Auto-generated method stub
      return arg0;
   }

   @Override
   public View getView(int position, View convertView, ViewGroup arg2) {
      convertView = View.inflate(c, R.layout.item, null);
      TextView name = (TextView) convertView.findViewById(R.id.tv_name);
      TextView age = (TextView) convertView.findViewById(R.id.tv_age);
      TextView sex = (TextView) convertView.findViewById(R.id.tv_sex);
      name.setText(alss.get(position).getName());
      age.setText(alss.get(position).getAge());
      sex.setText(alss.get(position).getSex());
      return convertView;
   }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值