2013-07-16 38 views
5

Tôi đang cố tạo tùy chọn menu trong ứng dụng thử nghiệm của mình.Cách hiển thị menu tùy chọn trong android 4.2

Tôi có thể thấy menu khi tôi đặt chủ đề trong tệp kê khai thành chỉ mặc định (Trình đơn hiển thị ở trên cùng). Nếu tôi đặt chủ đề trong tệp kê khai thành NoTitleBar. Tôi không thể thấy tùy chọn menu?

Tôi muốn nhận trình đơn khi tôi đặt chủ đề "NoTitleBar" trong tệp kê khai.

Cách khắc phục?

Dưới đây là những điều mà tôi đã sử dụng trong ứng dụng thử nghiệm của tôi:

với Manifest:

<uses-sdk 
     android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar" > 
    <activity 
     android:name="com.ssn.menuoptions.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

Menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/menu_preferences" 
     android:title="Preferences" /> 
</menu> 

tập tin Java:

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
    { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

Có thể để có được một cái gì đó như thế này:

file:///C:/Users/Koushik/Downloads/SahayaPictures/fHEQ8.png

Làm thế nào để làm cho menu để hiển thị lên xuống?

Cảm ơn!

+0

Trên các thiết bị có nút menu (như Galaxy S2), thiết bị sẽ hiển thị khi bạn nhấn nút menu. Trên các thiết bị khác, nó nằm trong thanh tiêu đề. Tại sao bạn xóa thanh tiêu đề nếu bạn có một menu? – nedaRM

+0

Tôi đã thấy một vài menu xuống .. Giống như hình ảnh được hiển thị trong câu hỏi của tôi. Làm thế nào là nó được thực hiện? – TheDevMan

+0

Ngoài ra ứng dụng Facebook hiển thị trình đơn ở dưới cùng cho 4.2. – TheDevMan

Trả lời

0

Sử dụng chủ đề notitlebar sẽ xóa thanh tác vụ trong đó nút menu là. Bạn có thể phải tạo một chủ đề tùy chỉnh để có menu của bạn trong đó. Nếu bạn không làm bất cứ điều gì về nó, bạn luôn có thể sử dụng thuộc tính này: android:showAsAction="Never" để người dùng có điện thoại có nút menu có thể bật menu bằng nút của họ.

+0

Tôi sẽ hiển thị thông tin này ở đâu: android: showAsAction = "Never"? Trong Tệp kê khai hoặc Menu.xml? – TheDevMan

+0

Trong menu.xml, trong thẻ của bạn. –

+0

Tôi đã thấy một vài menu xuống .. Giống như hình ảnh được hiển thị trong câu hỏi của tôi. Làm thế nào là nó được thực hiện? – TheDevMan

2

Thêm mã sau bên dưới Activity.setContentView();

setContentView(R.layout.activity_detail); 
    // set option menu if has no hardware menu key 
    boolean hasMenu = ViewConfiguration.get(this).hasPermanentMenuKey(); 
    if(!hasMenu){ 
     //getWindow().setFlags(0x08000000, 0x08000000); 
     try { 
      getWindow().addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null)); 
      } 
      catch (NoSuchFieldException e) { 
      // Ignore since this field won't exist in most versions of Android 
      } 
      catch (IllegalAccessException e) { 
      Log.w("Optionmenus", "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e); 
      } 
    } 
+0

hasPermanentMenuKey() không được tìm thấy làm phương thức. Điều này đã được đưa vào với API 22. –

+0

@AndrewS Đối với tôi tài liệu trong IDE của tôi nói rằng nó đã được trong 14. Cách giải quyết là thêm một phiên bản kiểm tra đầu tiên. – Nulano

0

Thêm vào Android Manifest android: targetSdkVersion = "10"

<uses-sdk 
    android:targetSdkVersion="10" /> 
1

Nếu bạn không muốn thanh tác vụ trong ứng dụng của bạn, sau đó bạn chỉ có thể thiết lập một nút với handler này:

myButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View arg0) { openOptionsMenu(); } 
}); 

Bây giờ myButton hoạt động như phím menu. Đây là một cách dễ dàng để di chuyển ứng dụng toàn màn hình sang 4.x, mặc dù thuật ngữ dài hơn cần tìm giải pháp thanh lịch hơn.

Các vấn đề liên quan