Android编程知识点1-Button,ListView

一. Button按钮

(1)一个按钮对应一个事件监听器

事件监听器:在onCreate()函数中添加下面的事件监听器。

Button button=(Button)findViewById(R.id.button01);
button.setOnClickListener(new View.OnClickListener()
{
     public void onClick(View view)
    {
        具体内容...
    }
});

(2)多个按钮对应一个事件监听器

Button.onClickListener buttonListener=new Button.OnClickListener()
{
    @override
    public void onClick(View v)
    {
        switch(v.getId())//得到组件的ID号
        {
        case R.id.button01: //如果id号是button01,进行下面操作
            ....
            return;
        case R.id.button02: //如果id号是button02,进行下面操作
            ....
            return;
        }
    }
};
button01.setOnClickListener(buttonListener); //这个button01是名字,上面的button01是这个名字的id
button02.setOnClickListener(buttonListener);

二. ListView

listview能够通过适配器将数据和显示控件绑定,在有限的屏幕上提供大量内容供用户选择

在main.xml文件中,声明ListView组件

<ListView
        android:id="@+id/listview01"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 </ListView>

在ListViewDemo.java文件中(应该就是MainActivity.java文件),创建适配器

 

 ListView listview=(ListView)findViewById(R.id.listview01);
 List<String>list=new ArrayList<String>(); //声明数组列表
 list.add("listview子项1");
 list.add("listview子项2");
 //声明适配器,下面的第三个参数list说明适配器的数据源为数组列表
 ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
 //将listview和适配器绑定
 listview.setAdapter(adapter);

 添加子项在后面若是往ListView上增加信息,即增加子项,用法(一般在按钮的点击事件中)

ArrayAdapter temp_adp=(ArrayAdapter) listview.getAdapter();  //上面是set,这里是get
//et_a这个为一些在EditText上用户输入的信息 temp_adp.add(et_c.getText().toString()
+" "+et_a.getText().toString()+" "+et_n.getText().toString());

 

在ListViewDemo.java文件中(应该就是MainActivity.java文件),声明ListView子项的点击事件监听器

 

 AdapterView.OnItemClickListener listViewListener=new AdapterView.OnItemClickListener()
 {
     @override
     public void onItemClick(AdapterView<?>arg0,View arg1,int arg2,long arg3)
     {
         String msg="father view:"+arg0.toString()+"son view"+arg1.toString();
         ......
     }
 };
 //ListView指定刚声明的适配器
 listview.setOnItemClickListener(listViewListener);
//arg0:适配器控件,这里是listview
//arg1:适配器内部的控件,这里是ListView的子项
//arg2:子项的位置
//arg3:子项的行号

 删除子项

 需要先建立一个文件,smenul.xml文件,在res下面建一个menu目录,然后在该目录下建立一个文件smenu1

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="50dp"
    >
    <item
        android:id="@+id/menu1"
        android:orderInCategory="100"
        android:title="删除">

    </item>

</menu>

接下来就是设置长按子项进行删除

//listview的长按子项事件
 //PopupMenu是种显示位置不固定的弹出菜单,因为它显示在参照控件下方,所以展示位置随着参照控件的位置变化而变化
 //第一参数是上下文对象,参数二是你点击了啥才显示PopupMenu的那个监听的View(这里是子项)
 //R.menu.smenu1是布局文件
 listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
            @Override

            public boolean onItemLongClick(AdapterView<?> parent,View view,final int position, long id){
                if(id > 0)
                {
                    PopupMenu popup = new PopupMenu(MainActivity.this,view);
                    popup.getMenuInflater().inflate(R.menu.smenu1,popup.getMenu());
                    popup.show();
                    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
                        @Override
                        public boolean onMenuItemClick(MenuItem item){
                            switch (item.getItemId()){
                                case R.id.menu1:
                                    ArrayAdapter temp_adp = (ArrayAdapter) lv1.getAdapter();
                                    temp_adp.remove(temp_adp.getItem(position));
                                    return true;
                                default:
                                    return false;
                            }
                        }

                    });
                }
                return true;

            }
        });

 

 

 

 

 

转载于:https://www.cnblogs.com/loyolh/p/9964449.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值