2014-04-01 4 views
2

버튼을 클릭 할 때 메뉴를 열고 싶습니다. 플로팅 컨텍스트 메뉴를 만들려고했지만 아무 것도 누르지 않으면 아무 일도 일어나지 않습니다.플로팅 컨텍스트 메뉴를 만드는 방법은 무엇입니까?

MainActivity.java

public class MainActivity extends ListActivity { 

    private Button button1; 

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

     button1 = (Button)findViewById(R.id.button1); 

     registerForContextMenu(button1); 
    } 

    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main, menu); 
     return true; 
    } 

    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     switch (item.getItemId()) 
     { 
      case R.id.item1: 
       function(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 
} 

main.xml에

또한
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.prounitconverter.prounitconverter.MainActivity" > 

    <item android:id="@+id/item1" 
     android:title="@string/action_settings" 
     android:orderInCategory="100" 
     app:showAsAction="never" /> 
</menu> 

, 어떻게 두 개의 서로 다른 버튼에 대한 두 가지 메뉴를 만들 수 있습니까?

답변

0

두 개의 서로 다른 메뉴는 두 개의 다른 XML 파일을 만들고 그 이름을 다른 이름으로 부 풀려야합니다.

은 버튼, 당신은 더 온 클릭 방법이 버튼

this.button1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      //open your menu here 
      } 
     }); 

this.button2.setOnClickListener (새 OnClickListener를() { 을 초기화하기 후에에서 onCreate에 있어야

에게이 없다 @ 오버라이드 public void onClick (v보기) { // 여기에 메뉴 열기 } });

+0

내가 this.button1.setOnClickListener (새 OnClickListener를() { @Override 공공 무효 온 클릭 (보기 V) { 를 사용하려고();) openContextMenu(); – user3486440

1

당신은 간단한 드롭 다운 메뉴를 찾고 있다면 - PopupMenu 사용

//anchorView - any view, where you want show menu 
PopupMenu popupMenu = new PopupMenu(anchorView.getContext(), anchorView); 
popupMenu.inflate(R.menu.my_menu_xml); 
popupMenu.show(); 
관련 문제