I would like to implement in my listview the longclick, up there I succeeded perfectly :) Now I would like to create a sort of pop-up with more possibilities, for example, paste, delete, remove, etc ... To make you understand I found a picture on the internet :) Ve mail below. Thank you in advance
问问题
1235 次
3 回答
2
尝试使用这样的弹出菜单..
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button2);
registerForContextMenu(button);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.main, menu);
}
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
getMenuInflater().inflate(R.menu.main, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem arg0) {
Toast.makeText(MainActivity.this, "" + arg0, Toast.LENGTH_SHORT)
.show();
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
像这样的xml..
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/edit"
android:title="edit"/>
<item
android:id="@+id/delete"
android:title="delete"/>
<item
android:id="@+id/exit"
android:title="exit"/>
于 2013-09-03T16:07:50.917 回答
1
我认为首选方法是对这些类型的菜单使用操作模式。看看这个,我认为这将包含您需要的所有信息。这似乎有点压倒性,但实施起来并没有那么糟糕。 http://developer.android.com/guide/topics/ui/menus.html
于 2013-09-03T15:56:42.667 回答
0
试试下面的代码..
在java中
listView.setOnItemLongClickListener(new OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View v,
int position, long id) {
// TODO Auto-generated method stub
LayoutInflater layoutInflater= (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
final View popupView = layoutInflater.inflate(R.layout.list_popup, null);
final PopupWindow popupWindow = new PopupWindow(popupView,155,LayoutParams.WRAP_CONTENT);
ListView listView = (ListView) popupView.findViewById(R.id.list_view);
listView.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,menu));
popupWindow.showAsDropDown(listView, 50, 0);
return false;
}
});
list_popup.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:background="#44444d"
>
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:divider="#5c7089"
android:dividerHeight="2dp"
android:layout_marginTop="3dp"/>
</LinearLayout>
于 2013-09-03T16:13:18.740 回答