2014年10月20日 星期一

淘汰的Network 用法

HTTP GET
public static void Setdata(String urlStr) { Log.i("Ten", "Device Edit Done"); HttpUriRequest request = new HttpGet(urlStr); // Or HttpPost(), depends // on your needs String credentials = account_password; String base64EncodedCredentials = Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); request.addHeader("Authorization", "Basic " + base64EncodedCredentials); httpclient = new DefaultHttpClient(); try { HttpResponse response = httpclient.execute(request); HttpEntity httpEntity = response.getEntity(); String state = EntityUtils.toString(httpEntity); Log.i("Ten", "Ten: " + state); } catch (ClientProtocolException e) { Log.i("Ten", "ClientProtocolException:" + e); e.printStackTrace(); } catch (IOException e) { Log.i("Ten", "IOException:" + e); e.printStackTrace(); } }



HTTP POST

public static String HttpPing(String urlStr) {
String responseBody = "";
try {
String credentials = account_password;
String encoding = Base64.encodeToString(credentials.getBytes(),
Base64.NO_WRAP);
HttpPost httppost = new HttpPost(urlStr);
httppost.setHeader("Authorization", "Basic " + encoding);
List<NameValuePair> postParams;
postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("GetJson", ""));

HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;

UrlEncodedFormEntity urf = new UrlEncodedFormEntity(postParams,
HTTP.UTF_8);
httppost.setEntity(urf);
response = httpclient.execute(httppost);
int code = response.getStatusLine().getStatusCode();
if (code == 200) {
responseBody = EntityUtils.toString(response.getEntity());
}
} catch (ClientProtocolException e) {

} catch (IOException e) {

}
//Log.i("Network reponse:",responseBody);
return responseBody;
}

2014年10月7日 星期二

動態修改以動態建立的view視圖 layoutInflater.inflate

解法:
view.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener(){
              @Override
public void onGlobalLayout() {

}
});

解釋:
 通常是在動態宣告 layoutInflater.inflate後又立刻需要變動 layoutInflater.inflate
 (譬如取得剛宣告完的view圖的長寬或上下左右邊界,但系統還沒建立出來)的時候,
會遇到這個問題,
解法是利用getViewTreeObserver這個觀察者(android本身有的內建函式),
去透過Interface的方式在畫面確實被畫出來的時候再返回你所Override的 onGlobalLayout函式去執行你想做的動作。

這個解法蠻漂亮的,所以記錄一下,但我後來發現因為每當畫面更新的時候這個函式就會被觸發,所以還是需要一些參數來控制,詳細就不多贅敘囉!


參考網址:
http://stackoverflow.com/questions/7517636/viewgroup-finish-inflate-event

http://blog.csdn.net/guolin_blog/article/details/12921889

2014年2月25日 星期二

Android 軟體鍵盤無法改enter成next 或其他按鈕(android setimeoptions not working)

可能原因:請限制加上single line。
        android:imeOptions="actionNext"
        android:singleLine="true"