2014年11月5日 星期三

[Android] 同時使用 long click listener 和 click listener


ListView 與 GridView 常常都有需要 long click 的需求
但可能一不小心會將 long click 和 click 同時觸發

要怎麼避免這個情況呢?
可以依照下面的這個方法
注意紅色的地方

 gridView.setOnItemLongClickListener(new OnItemLongClickListener() {  
     @Override  
     public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long arg3) {  
         // do what u want to do  
         return true;  
     }  
 });  
 gridView.setOnItemClickListener(new OnItemClickListener() {  
     @Override  
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {  
         // do what u want to do  
     }  
 });  

假如 return false; 的話
長按時,兩者會同時觸發!!

所以如果要正常使用這兩個功能
必須要寫 return true;
才會符合需求唷!!

2014年11月4日 星期二

[Android] GridView update/refresh


查了很多 StackOverflow 上的解說
都說要使用

 adapter.notifyDataSetInvalidated();  
 gridView.invalidateViews();  
 gridView.setAdapter(adapter); 

這樣的方法

但不知道為什麼一直不會成功 (請高手指點

[Android] WebView methods must be called on the same thread error


所有 android View 相關的方法必須要在 UI Thread下被呼叫才能正確執行

以 WebView 為例

可以用以下的方式來解決

 mWebView.post(new Runnable() {  
   @Override  
   public void run() {  
     mWebView.loadUrl(...).  
   }  
 });  

就可以正常使用了~