zoukankan      html  css  js  c++  java
  • Android 中常用代码片段

    一:AsyncTask 的使用

    (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){
                //...
            }
        };
    }
  • 相关阅读:
    Chapter 23: Termination Handlers(2)Understanding Termination Handlers by Example(6)
    【原】常用HTML
    [导入]化州特产~
    [导入]又大一岁,自己祝自己生日快乐~
    [导入]新视觉LOGO~
    [导入]看清楚中国移动的新旧资费
    [导入]AJAX .NET版本之间的区别
    泛型简介
    关于MongoDB的group分组
    【javascript继承】之——原型链继承和类式继承
  • 原文地址:https://www.cnblogs.com/yshyee/p/3675243.html
Copyright © 2011-2022 走看看