2017-11-29 2 views
-2

Menù을 내 주요 활동 및 다른 모든 활동에 디스패 할 수 없습니다. 이 내 main.xml : 이것은 내 메뉴 care_home.xml가OnCreateOptionMenu가 호출되지 않습니다

package com.mcsolution.easymanagementandroid.main; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.content.pm.PackageManager; 
import android.content.pm.ResolveInfo; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.View; 
import android.widget.Toast; 

import com.mcsolution.easymanagementandroid.R; 
import com.mcsolution.easymanagementandroid.beans.Program; 
import com.mcsolution.easymanagementandroid.connection.MyDatabase; 
import com.mcsolution.easymanagementandroid.utility.SyncDati; 

public class Main extends Activity { 
    public MyDatabase db; 
    public ProgressDialog dialog; 
    public String url=""; 
    private static final Intent SCAN_INTENT = new Intent("com.google.zxing.client.android.SCAN"); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.care_home, menu); 
     return super.onCreateOptionsMenu(menu); 
     } 
    private void apriConnessioneDB(){ 
     db=new MyDatabase(getApplicationContext()); 
     db.open(); //apriamo il db 
    } 
    public void visualizzaArticoli(View view){ 
     Intent intent = new Intent(this, com.mcsolution.easymanagementandroid.articoli.viewArticoli.class); 
     startActivity(intent); 
    } 
} 

입니다 : 이것은 내 main.java 파일이

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:background="@color/cardview_dark_background"> 
    <android.support.v7.widget.CardView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     card_view:cardBackgroundColor="@color/cardview_light_background"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 
      <ImageButton 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/articoli" 
       android:onClick="visualizzaArticoli" 
       android:background="@null"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Articoli" 
       android:layout_gravity="center_vertical" 
       android:layout_marginLeft="50dp"/> 
     </LinearLayout> 
    </android.support.v7.widget.CardView> 
</LinearLayout> 

입니다

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:title="@string/action_settings"/> 
    <item 
     android:id="@+id/action_logout" 
     android:orderInCategory="100" 
     android:title="Logout"/> 
</menu> 

내 응용 프로그램을 시작하려고하면 , 어떤 오류도 없지만 MenuBar을 볼 수는 없습니다. OnCreateOptionMenu 메서드에 디버그 지점을 설정하려고했지만 메서드가 호출되지 않습니다. 어떻게 해결할 수 있습니까?

@SuppressLint("RestrictedApi") 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    if (menu != null) { 

    } 
    return true; 
} 

는 희망이 도움이 :

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.care_home, menu); 
    return true; 
} 
+0

메뉴를 실제로 사용하려면'onCreateOptionsMenu()'에서'return true;를 사용해야합니다. 중단 점 문제가 확실하지 않습니다. –

+0

onCreateOptionsMenu에서 슈퍼 메서드 인스턴스를 반환하면 true 만 반환됩니다. –

+0

필자가 작성했지만 Menù이 표시하지 않는 모든 코드를 사용하려고합니다. Android 6.0을 사용하고 또 다른 구성 요소가있을 수 있습니까? – bircastri

답변

2

당신은 당신이 같은 대신 슈퍼의 true를 돌려 onCreateOptionsMenu()return true;해야합니다.

2

아래의 코드와 같이

0

당신은 간단하게이를 사용하여 활동

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

      return super.onOptionsItemSelected(item);   
    } 
1

에 두 가지 방법을 사용할 수 있습니다

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.care_home, menu); 
     return true; 
    } 
0

귀하의 활동 클래스는 Activity하지 AppCompatActivity 확장합니다. 이러한 활동의 ​​기본 테마에는 메뉴가 존재하게되는 작업 표시 줄이 포함되어 있지 않습니다. 활동의 레이아웃 파일에 <Toolbar>을 추가 한 다음 onCreate() 메소드에서 setActionBar()으로 전화해야합니다.

예를 들어, 최상위 <LinearLayout> 태그의 첫 번째 자식으로이 추가

<Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

그리고 당신은 당신의 onCreate()setContentView()를 호출 직후이 추가 : 이제

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setActionBar(toolbar); 

이됩니다 활동에 액션 바가 있으니 메뉴가 나타납니다.

관련 문제