2013年7月25日 星期四

android 在 「左側listview fragment+ 右側 Detail Fragment」型態中的master-detail flow中,如何做到切換左側的master時,先執行右側 detail的防呆?

好長的文章抬頭是吧
不知道你有沒有用過android 4.x的平板中「系統設定」中的master & detail介面?
等你實作時,一定會遇到detail fragment 防呆沒跑就切換master item的問題了
這兩天試出來的很笨的方式--當笑話看一下也無妨 ,畢竟codding如果沒有熱情,會是種煎熬
(如果你有更好的更簡潔的solution,麻煩教一下)
以下的架構是由ADK creaete activity 選用 master/detail flow所產生的架構改寫
片段如下:
============================================================
 */
public class xxxxxItemListActivity extends FragmentActivity implements
xxxxxItemListFragment.Callbacks {

         ....
         ...
         ...
static String lastSelectId="-1";
       static  Fragment currentFagment=null;
@Override
public void onItemSelected(String id) {   //<---id是從DummyContent定義的,"1"開始
if(currentFagment!=null && currentFagment.isInValide()){
          
   ListView lv=((SpotInfoItemListFragment) getSupportFragmentManager()
.findFragmentById(R.id.spotinfoitem_list)).getListView();

   lv.setItemChecked(Integer.parseInt(lastSelectId)-1, true); //<--setItemChecked is zero                                                                                                                         //based
onItemSelected(lastSelectId);   //<--switch to last select item
return;
}
if(lastSelectId.equals(id)){
return;     //<--remains what we input,
}
lastSelectId=id;  //<--update variable.
if (mTwoPane) {
                       ...   
                         //show the fragment
                       ...
                       ...
               }
              ....
        }
       ......
}
============================================================

沒有留言:

張貼留言