2016-05-13 18 views
1

listview item編集/削除するためのFacebookのようなポップアップメニュー/スパムポスト

ポップアップメニュー:

<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.edusols.HomeActivity" > 

    <item 
     app:showAsAction="never" 
     android:id="@+id/one" 
     android:title="abcd" /> 

    <item 
     android:id="@+id/two" 
     android:title="Two"/> 

    <item 
     android:id="@+id/three" 
     android:title="Three"/> 

</menu> 
  • 私がリストビューを持って、私は、編集後のようなオプションとすべてのこと
  • を持っているI特定の位置にポップアップメニューが必要な場合はポップアップメニューが表示されますが、正しい位置には表示されません
  • リストビューアのアダプタでポップアップメニューを設定しました

コード:

ivOptionMenu.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (post_user_id.equals(preferenceHelper.getID())) 
       { 

        PopupMenu popup = new PopupMenu(ctx, ivOptionMenu); 
        popup.getMenuInflater().inflate(R.menu.poupup_menu, popup.getMenu()); 
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
         public boolean onMenuItemClick(MenuItem item) { 
          Toast.makeText(ctx,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show(); 
          return true; 
         } 
        }); 

        popup.show();//showing popup menu 
       } 
       else { 
        PopupMenu popup = new PopupMenu(ctx, ivOptionMenu); 
        popup.getMenuInflater().inflate(R.menu.poupup_menu, popup.getMenu()); 
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
         public boolean onMenuItemClick(MenuItem item) { 
          Toast.makeText(ctx,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show(); 
          return true; 
         } 
        }); 

        popup.show();//showing popup menu 
       } 

How menu appears on click

答えて

0

PopMenuConstructor PopMenuはを接続しますれる(CTX、
図。

@Override 
    public void onClick(View v) { 
     if (post_user_id.equals(preferenceHelper.getID())) { 
      //PopupMenu popup = new PopupMenu(ctx, ivOptionMenu); 
      //change to this 
      PopupMenu popup = new PopupMenu(ctx, v); 
      . 
      . 
     } 
    } 
1

// resを/メニューにpopup_menu.xmlをxmlファイルを作成し、これらのコード

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:id="@+id/action1" 
     android:title="delete" /> 
    <item 
     android:id="@+id/action2" 
     android:title="properties" /> 

    <item 
     android:id="@+id/action3" 
     android:title="add to queue" /> 

    <item 
     android:id="@+id/action4" 
     android:title="play next" /> 

    <item 
     android:id="@+id/action5" 
     android:title="add to favorite" /> 
</menu> 

javaファイルにこのコードを使用して追加します。

mViewHolder.imagemore.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 

        final PopupMenu menu = new PopupMenu(context, v); 
        menu.getMenuInflater().inflate(R.menu.popup_menu, menu.getMenu()); 
        menu.show(); 

        menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
         @Override 
         public boolean onMenuItemClick(MenuItem item) { 

          switch (item.getItemId()) { 

           case R.id.action1: 

            deleteSong(position); 

            break; 
           case R.id.action2: 
            Toast.makeText(context, "your desire action is " + item.toString(), Toast.LENGTH_SHORT).show(); 
            break; 
           case R.id.action3: 
            Toast.makeText(context, "your desire action is " + item.toString(), Toast.LENGTH_SHORT).show(); 
            break; 
           case R.id.action4: 
            Toast.makeText(context, "your desire action is " + item.toString(), Toast.LENGTH_SHORT).show(); 
            break; 
           case R.id.action5: 
            Toast.makeText(context, "your desire action is " + item.toString(), Toast.LENGTH_SHORT).show(); 
            break; 
           default: 
            break; 
          } 

          return true; 
         } 
        }); 

       } 
      }); 
関連する問題