对一个控件设置监听

比如说有一个id为send的button
首先要声明出这样一个button:private Button send;
然后在onCreat(Bundle saveInstanceState)函数中对Button进行寻找吧:send=(Button)findViewById(R.id.send);
为Button注册一个监听器,并调用onClick()方法,当点击按钮的时候就会执行。

send.setOnClickListener(new OnClickListener(){            public void onClick(View v){                String status="控制系"+share.getText().toString();//share是一个定义的EditText控件                String TAG="SEND";                Log.d(TAG,"onClicked with status:"+status);                new PostTask().execute("<"+getPackageName()+">"+status);            }        });

使用AsyncTask

为什么要使用AsyncTask
以我们自己适用手机为例,我们希望手机对我们的每一个操作都保持灵敏,然而对于我们的每一个操作后面都意味着可能会有比较耗时的操作。这样,如果只有一个线程,必然会让我们狂躁..所以我们把一些事情放在后台进行操作。


AsyncTask是什么
AsyncTask是一个抽象类,所以需要创建一个类来继承它。

public abstract class AsyncTask 
  • Params:执行AsyncTask时需要传入的参数
  • Progress:如果需要在当前界面上显示进度
  • Result:任务执行结束后,如果需要对结果进行返回
private final class PostTask extends AsyncTask<String,Void,String>
  • 第一个泛型参数为String,意味着在执行时,需要把字符串传送到后台任务。本例是发送微博时的操作,也就是说,我在主线程中知道了自己要发送的字,然后把这些字传送到了后台,由后台具体执行post
  • 第二个参数为Void,也就是说不需要进度显示
  • 第三个参数为String,也就是说,在本任务中,如果发送成功,则返回”successful“,失败了就返回”failed“。目前看的蛮多例子都会设置为boolean

    在这个抽象类中存在经常需要重写的四个方法。

  • onPreExecute():在后台任务开始之前就进行调用,用于进行一些界面上的初始化操作,比如显示一个进度条的对话框

  • doInBackground(Params...):这个方法的所有代码都会在子线程中运行,任务完成后通过return将任务执行的结果,就是第三个参数啦,进行返回
  • onProgressUpdate(Progress...):这个里面可以对UI进行操作,对界面进行更新,类似进度条的更新吧
  • onPostExecute(Result):就让我简单粗暴的理解成任务完成之后把进度条关掉吧…

private final class PostTask extends AsyncTask<String,Void,String>{        protected String doInBackground(String...params){            YambaClient yambaCloud=new YambaClient("student","quick");            try{                yambaCloud.postStatus(params[0]);                return"successfully posted";            }catch(YambaClientException e){                return"Failed";            }        }        protected void onPostExecute(String result){            super.onPostExecute(result);            Toast.makeText(Weibo_Submit.this, result, Toast.LENGTH_LONG).show();            if(result.startsWith("successfully"))share.setText("");        }    }

TOAST是Android中比较常用的一种提示方式。我好像在别的博客里写过…怎么就忘了呢…哎…

更多相关文章

  1. SQLite数据库浅谈
  2. Android(安卓)Design Support Library - FloatingActionButton
  3. android 隔几秒再执行
  4. android framework层添加串口操作
  5. EventBus的使用详解
  6. Android(安卓)kotlin网络请求框架fuel(简单方便的使用,提供项目中
  7. android 上传文件到 spring 搭建的后台
  8. android图书管理系统+javaweb后台服务器代码
  9. android事件分发机制(上)

随机推荐

  1. Android(安卓)Activity的生命周期详细介
  2. Android设置视频背景
  3. android中的ANR(程序无响应)bug及其解决方
  4. 利用ADB固定Android手机的CPU频率
  5. Android开发时你遇到过什么相见恨晚的工
  6. Eclipse如何快速调试系统App(具有系统权限
  7. Android(安卓)Studio 4.0 重磅发布!Androi
  8. Android中适配器getView()原理和ListView
  9. Android(安卓)进阶2:Activity 的 Task 与
  10. 如何衡量一个Android应用开发人员的能力?