- 监听文字改变事件
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) {
}
});
-
监听滑动事件
- 在需要监听滑动的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
}
});