2014-04-05 172 views
-2

我试图关闭滑动抽屉时,我就返回返回键,但它不是在这里工作 点击,为我所用如何关闭与返回按钮slidind抽屉 - 安卓

@Override 
public void onBackPressed() { 
    Log.d("onBackPressed Called", FROM_SETTINGS_KEY); 
     slidingDrawer.close(); 

} 

的XML代码:

<SlidingDrawer 
    android:id="@+id/slidingDrawer1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="197dp" 
    android:content="@+id/content" 
    android:handle="@+id/handle" > 

    <Button 
     android:id="@+id/handle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Handle" /> 

    <LinearLayout 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
    </LinearLayout> 
</SlidingDrawer> 

那么我怎样才能使返回键关闭这个滑动抽屉?

+0

你是在抛出一个'Exception'还是'SlidingDrawer'没有响应? – adneal

+0

的slidingdrawer没有回应我可以把在MainActivity不受此代码\t公共布尔的onkeydown(INT的keyCode,KeyEvent的事件){ \t \t的返回键响应,如果((的keyCode == KeyEvent.KEYCODE_BACK)){ \t \t \t \t \t} \t \t return false; – user3425815

回答

1

你覆盖了Activity.onKeyDownwhich Activity already overrides when implementing Activity.onBackPressed,然后返回falseKeyEvent.KEYCODE_BACK这表明你不处理该事件,并应继续传播。

要解决您的问题,请不要覆盖Activity.onKeyDown。另外,如果SlidingDrawer未打开,请将您的Activity.onBackPressed更改为拨打super

private SlidingDrawer slidingDrawer; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 

    slidingDrawer = (SlidingDrawer) findViewById(R.id.slidingDrawer1); 
} 

@Override 
public void onBackPressed() { 
    if (slidingDrawer.isOpened()) { 
     slidingDrawer.close(); 
    } else { 
     super.onBackPressed(); 
    } 
} 
+0

非常感谢你,我生病了试试这个 – user3425815

+0

@ user3425815这是你要找的答案吗?你需要更多的帮助吗? – adneal

+0

没有它的不工作,但感谢你的回应 – user3425815