我需要幫助解決問題我目前找不到任何解決方案。 我想實現的:關於按下列表項目視圖時的彈出式菜單
我有一個自定義ListView
適配器。對每個Listitem我想添加一個popup menu
像 支付,沒有支付,交付,不交付。
我需要幫助解決問題我目前找不到任何解決方案。 我想實現的:關於按下列表項目視圖時的彈出式菜單
我有一個自定義ListView
適配器。對每個Listitem我想添加一個popup menu
像 支付,沒有支付,交付,不交付。
試試這個:
RES /菜單/ mylistmenu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/paid"
android:orderInCategory="100"
android:title="Paid"/>
<item
android:id="@+id/notpaid"
android:orderInCategory="101"
android:title="Not Paid"/>
<item
android:id="@+id/delivered"
android:orderInCategory="103"
android:title="Delivered"/>
<item
android:id="@+id/notdelivered"
android:orderInCategory="104"
android:title="Not Delivered"/>
</menu>
列表項的OnClick彈出
//狀態的TextView
TextView statustxt = (TextView) findViewById(R.id.statusText);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PopupMenu popup = new PopupMenu(view.getContext(),view);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.mylistmenu, popup.getMenu());
//Handle Menu Click
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
{
switch (item.getItemId()){
case option_one:
statustxt.setText("Paid");
case option_two:
statustxt.setText("Not Paid");
case option_three:
statustxt.setText("Delivered");
case option_four:
statustxt.setText("Not Delivered");
}
}
return false;
}
});
popup.show();
Intent intent = new Intent(MainActivity.this, EditActivity.class);
intent.putExtra("id", id);
intent.putExtra("food", foods.getFoods().get((int) id));
startActivityForResult(intent, FOOD_EDIT);
}
});
在我的代碼中,有一個onclick菜單監聽器.. case option_three: //在此處添加您的代碼(將其標記爲已付/未付款) –
你能否清楚你的要求?一旦你點擊一個項目,它會顯示一個彈出菜單,其中有四個選項(付費,未付費,已交付,未交付)。接下來你會做什麼? –
如果您點擊付費,您是否希望它在任何地方顯示「付費」? –
菜單XML
<menu xmlns:androclass="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/one"
android:title="played"/>
<item
android:id="@+id/two"
android:title="not played"/>
</menu>
代碼:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PopupMenu popup = new PopupMenu(MainActivity.this, listView);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(MainActivity.this,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show();
return true;
}
});
Intent intent = new Intent(MainActivity.this, EditActivity.class);
intent.putExtra("id", id);
intent.putExtra("food", foods.getFoods().get((int) id));
startActivityForResult(intent, FOOD_EDIT);
}
});
什麼,當你點擊列表項發生什麼呢? –
我想添加一個彈出菜單,當我點擊列表項目 –