Android 中常用代码片段
2014-04-19 16:33
411 查看
一:AsyncTask 的使用
(1)activity_main.xml
(2)MainActivity.java
二:HttpGet
三:Volley POST
(1)activity_main.xml
<TextView android:id="@+id/tvInfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <ProgressBar android:layout_below="@id/tvInfo" android:id="@+id/asyncPb" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone" />
(2)MainActivity.java
public class MainActivity extends Activity { private ProgressBar asyncPb = null; private TextView tvInfo = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvInfo = (TextView)findViewById(R.id.tvInfo); String params = "Welcome to here"; new MyAsyncTask().execute(params); } private class MyAsyncTask extends AsyncTask<String, Integer, String>{ @Override protected void onPreExecute() { //做一些预处理 asyncPb = (ProgressBar)findViewById(R.id.asyncPb); asyncPb.setVisibility(View.VISIBLE); } @Override protected String doInBackground(String... params) { //执行耗时操作,网络任务、文件操作、数据库操作、复杂计算操作 int myProgress = 0; int length = params[0].length(); for(int i=1; i<=length; i++){ myProgress = i; //模拟耗时操作 try { Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } publishProgress((int)((myProgress/(float)length)*100)); } //它将传递给onPostExecute return params[0]; } @Override protected void onProgressUpdate(Integer... values) { //更新进度条 asyncPb.setProgress(values[0]); tvInfo.setText("已加载:"+(values[0])+"%"); } @Override protected void onPostExecute(String result) { //更新UI tvInfo.setText("加载完成:"+result); } } }
二:HttpGet
public static String getRequest(String url){ String result = ""; HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); try { HttpParams httpParams = client.getParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 3000); HttpConnectionParams.setSoTimeout(httpParams, 5000); HttpResponse response = client.execute(get); if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ result = EntityUtils.toString(response.getEntity()).trim(); } } catch (Exception e) { //连接超时 } return result; }
三:Volley POST
private RequestQueue rQueue = null; rQueue = WzhVolley.getRequestQueue(); StringRequest postRequest = new StringRequest( Request.Method.POST, URL, createDoSuccess(), createDoError()){ protected Map<String,String> getParams(){ Map<String,String> params = new HashMap<String,String>(); params.put(key,value); return params; } }; postRequest.setRetryPolicy(new DefaultRetryPolicy(WR.DEFAULT_TIMEOUT_MS, WR.DEFAULT_MAX_RETRIES, WR.DEFAULT_BACKOFF_MULT)); rQueue.add(postRequest); private Response.Listener<String> createDoSuccess(){ return new Response.Listener<String>(){ public void onResponse(String arg0){ //... JSONObject jsonObj = new JSONObject(arg0); //or JSONArray jsonArr = new JSONArray(arg0); } }; } private Response.ErrorListener createDoError(){ return new Response.ErrorListener(){ public void onErrorResponse(VolleyError arg0){ //... } }; }
相关文章推荐
- [Android]ListView中item的重用
- Android系统源码学习步骤
- Debian7.3下创建Android开发环境
- [Android学习笔记]view的layout过程学习
- adb wifi连接android设备
- android File存储对象 File存储到SD卡
- Android SDK更新问题
- Android gridView item点击后变成另一张图
- PS4/XBOX迎来全新劲敌!游戏盒子市场前瞻
- android中Parcelable接口的使用
- android中右下角老提示content loader的解决办法!!!
- android Json数据解析
- Android之多线程工作-AsyncTask与handler
- android 资源国际化 国家/地区 语言缩写代码
- Android AsyncTask Demo异步下载
- android 根据联系姓名获取电话号码
- 实现Android ListView 自动加载更多内容
- android之AutoCompleteTextView控件用法
- Android ListView使用BaseAdapter与ListView的优化
- Android横竖屏切换和灭屏亮屏时Activity的生命周期探究(2)