2014-04-21 4 views
2

글쎄,이 문제는 해결할 수있는 많은 방법을 시도했지만 아무 것도 ... 나는 메뉴 항목을 통해 옵션 메뉴를 열고 싶습니다.openOptionsMenu()가 작동하지 않습니다.

package com.example.tachles; 

import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ImageView; 
import android.widget.ShareActionProvider; 


public class MainActivity extends AnimActivity { 

    private ShareActionProvider mShareActionProvider; 
    ImageView history, contact, info, share; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     history = (ImageView) findViewById(R.id.imageView2); 
     history.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       Intent history = new Intent(getApplicationContext(), 
         HistoryMenu.class); 
       startActivity(history); 
      } 
     }); 

     contact = (ImageView) findViewById(R.id.imageView8); 
     contact.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       String recepientEmail = "[email protected]"; 
       Intent intent = new Intent(Intent.ACTION_SENDTO); 
       intent.setData(Uri.parse("mailto:" + recepientEmail)); 

       startActivity(intent); 

      } 
     }); 

     info = (ImageView) findViewById(R.id.imageView9); 
     info.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       Intent info = new Intent(getApplicationContext(), Odot.class); 
       startActivity(info); 

      } 
     }); 
    } 

    // Menu 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.actionbar, menu); 

     // Get the ActionProvider for later usage 
     mShareActionProvider = (ShareActionProvider) menu.findItem(
       R.id.action_share).getActionProvider(); 

     /** Setting a share intent */ 
     mShareActionProvider.setShareIntent(getDefaultShareIntent()); 

     return super.onCreateOptionsMenu(menu); 
    } 

    private Intent getDefaultShareIntent() { 
     Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("text/plain"); 
     intent.putExtra(Intent.EXTRA_SUBJECT, 
       "תכל'ס - האפליקציה שתלווה אותך לבגרויות"); 
     intent.putExtra(Intent.EXTRA_TEXT, 
       "https://play.google.com/store/apps/details?id=com.tachles"); 
     return intent; 
    } 


    public void Options(MenuItem item){ 

     MainActivity.this.openOptionsMenu(); 
     } 

    public void like(MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.action_like: 
      Uri uri = Uri.parse("https://m.facebook.com/tachles.mirnax?_rdr"); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
      startActivity(intent); 
     } 

    } 



} 

또한이 방법을 시도하고 그냥 ... 아무것도하지 않는 Android Option Menu on Button click

도와주세요 ... 상황에 맞는 메뉴를 생성하는 오류도없고, 로그 캣 ... 오버라이드 (override) 방법 아래

+0

이 History_moadim2 무엇 YourClassName.this.openContextMenu(v);을 가진 onClickListener()을 구현? – Sree

+0

클래스 이름입니다. –

+0

나는 당신이'onCreateContextMenu()'에 코드를 작성하지 않았다고 생각한다. –

답변

2

사용 전망.

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
    { 
     super.onCreateContextMenu(menu, v, menuInfo); 
     menu.add(0, 1, 0, "Menu 1"); 
     menu.add(0, 2, 0, "Menu 2"); 
     menu.add(0, 3, 0, "Menu 3"); 
    } 

아래에서 활동 코드에서 클릭 수신기를 처리하는 방법을 사용하십시오. 당신의 onCreateView()에서

@Override 
    public boolean onContextItemSelected(MenuItem item) 
    { 

     switch (item.getItemId()) 
     { 
     case 1: 
      //do your code here 
      break; 
     case 2: 
      //do your code here 
      break; 
     case 3: 
      //do your code here 
      break; 
     default : break; 
      } 

단지 registerForContextMenu(yourButton);를 호출하고

+0

거기에 가장 간단한 방법이 있습니까? – Max

+0

Android 버전 1.6에서 사용됩니다. 그 이유가 여기 있습니다. ActionBar를 사용 중입니다. –

+0

코드를 도와 주시겠습니까? 이 글을 어디서 쓰는지 모르겠다. – Max