How to Show Popup Menu near to Listview each item on Item Click Event ?
This is my code. I want to show Popup menu near to listview item on item click. but it shows at bottom only. So help me to show popup menu near to list item which was clicked. Thank you .
package saro.example.com.task2_listview;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ListAdapter;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.content.Context;
import android.widget.Toast;
import android.widget.PopupMenu;
public class MainActivity extends AppCompatActivity {
ListView list;
@Override
protected void onCreate(final Bundle savedInstanceState) {
String[] mobileArray = {"Android", "IPhone", "WindowsMobile", "Blackberry",
"WebOS", "Ubuntu", "Windows7", "Max OS X","Android", "IPhone", "WindowsMobile", "Blackberry"};
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter adapter = new ArrayAdapter<String>(this,
R.layout.activity_listview, mobileArray);
list = (ListView) findViewById(R.id.mobile_list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
int pos = parent.getPositionForView(v);
Toast.makeText(getApplicationContext(),pos+"",Toast.LENGTH_SHORT).show();
PopupMenu popup = new PopupMenu(MainActivity.this, list);
popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());
//
popup.show();
}
});
}
}
Thanks in Advance.