UI Components总结

一:UI Components介绍

1.是什么:

用于呈现View的一些组件,并不是View但是可以更好的呈现View。

2.主要包括:

(1)Menu菜单:

①Option Menu(选项菜单) ②Context Menu(上下文菜单) ③popup Menu(弹出式菜单)

(2)ActionBar(动作栏)

(3)Dialog(对话框)

①AlertDialog(提示对话框) ②DatePickerDialog(日期对话框)  ③ProgressDialog(进度对话框)

(4)Notifiction(通知)

(5)Toast

二:Menu菜单

1.Option Menu 选项菜单

实现步骤:

①重写onCreatOptionsMenu()方法;

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.second, menu);
        return true;
    }

②设置监听:重写onOptionsItemSelected()方法;

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
    }

注意:需要判断点击位置即通过判断item.getItemId和点击的菜单的id比较从而触发相应事件;

2.Context Menu 上下文菜单

实现步骤:

①获得ViewGroup对象,并关联适配器,存放数据源;

②给容器View注册上下文菜单:

registerForContextMenu(如ListView lv);//注册上下文菜单;(基于ListView的长按事件;长按就会弹出上下文菜单)

③创建菜单:

//当长按注册了上下文菜单的view时,此方法会执行;
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        getMenuInflater().inflate(R.menu.ctx, menu);
    }

④处理上下文菜单的点击事件:
  @Override
    public boolean onContextItemSelected(MenuItem item) {
        int id=item.getItemId();
        if(id==R.id.action_settings1){
            AdapterContextMenuInfo info=(AdapterContextMenuInfo) item.getMenuInfo();
            String text=list.get(info.position);//点击该菜单弹出该item中的信息;
            Toast.makeText(this, text, 0).show();
        }else if(id==R.id.action_settings2){
            Toast.makeText(this, "delete", 0).show();
            //获得要删除的item相关信息;(列入位置)
            //从数据集中删除数据,更新listView
            AdapterContextMenuInfo info=(AdapterContextMenuInfo) item.getMenuInfo();
            list.remove(info.position);
            ArrayAdapter adapter=(ArrayAdapter<?>)lv.getAdapter();//获得ListView关联的适配器;
            adapter.notifyDataSetChanged();//更新ListView
        }
        return super.onContextItemSelected(item);
    }

3.弹出式菜单:PopupMenu

当点击比如Button按钮时弹出:

private Button bt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt=(Button) findViewById(R.id.bt);
        bt.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(final View v) {
                //构建PopupMenu对象;
                PopupMenu pm=new PopupMenu(MainActivity.this, v);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值