2013-07-23 2 views
0

Я пытаюсь удалить устаревший код getWidth(); с этого кода перед выходом на производство. Я пробовал несколько способов, упомянутых здесь в стеке для других классов, но, похоже, не может заставить его работать для этого. Кто-нибудь знает, что я могу получить здесь?QuickAction от Lorensius

public class QuickAction extends PopupWindows implements OnDismissListener { 
... 
public void show (View anchor) { 
    int screenWidth  = mWindowManager.getDefaultDisplay().getWidth(); 
... 
} 

ответ

1

Я не уверен, что вы пробовали до сих пор, но вы могли бы использовать это:

final int version = android.os.Build.VERSION.SDK_INT; 
Display display = mWindowManager.getDefaultDisplay(); 
int screenWidth; 
if (version >= 13) { 
    Point size = new Point(); 
    display.getSize(size); 
    screenWidth = size.x; 
} 
else { 
    screenWidth = display.getWidth(); 
} 

Как JavaDoc говорит метод display.getWidth() осуждался в уровне API 13, так что вы должны использовать вместо display.getSize(Point).

Если вам не нравятся «магические» цифры, вместо 13 вы можете использовать android.os.Build.VERSION_CODES.HONEYCOMB_MR2.

+0

Метод getWindowManager() не определен для типа QuickAction – jcaruso

+0

У вас уже есть переменная mWindowManager в коде. Извините, я отредактирую свой ответ. – koso

+0

Спасибо! Отлично работает! – jcaruso

Смежные вопросы