安卓多种监听事件

236 阅读1分钟
  • 监听文字改变事件
 view.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }
            @Override
            public void onTextChanged( CharSequence charSequence, int i, int i1, int i2) {
            }
            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
  • 监听滑动事件

    1. 在需要监听滑动的view控件外一层添加SwipeRefreshLayout控件,用于监测
<android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/main_srl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ListView
            android:id="@+id/time_list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:divider="#ffffff"/>
    </android.support.v4.widget.SwipeRefreshLayout>
    2.主线程中写入监听  
 swipeRefreshLayout= (SwipeRefreshLayout) findViewById(R.id.main_srl);
        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                initEnterpriseList();
                toast=0;
                dataStart=0;
                new LoadDataThread().start();
            }
        });
    3.  当滑动触发出现提示框开启一个子线程执行该任务
 class LoadDataThread extends  Thread{
        @Override
        public void run() {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            handler.sendEmptyMessage(0x101);//通过handler发送一个更新数据的标记
        }
    }
    4.  给当前界面设置handle
@SuppressLint("HandlerLeak")
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case 0x101:
                    if (swipeRefreshLayout.isRefreshing()){
                    //通知适配器更新数据
                        myAdapter.notifyDataSetChanged();
                        swipeRefreshLayout.setRefreshing(false);
                    }
                    break;
            }
        }
    };
  • 查看当前Listview的上拉和下滑
exlist_lol.setOnScrollListener(new AbsListView.OnScrollListener(){
            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {
            }
            @Override
            public void onScroll(AbsListView absListView, int canSeeOne, int canSeeSum, int AllCount) {
                //canSeeOne是当前界面能看到的第一个item编号
                //CanSeeSum是当前页面能看到多少个item
                //AllCount是这个ListView拥有多少个item
            }
        });