安卓listview 长按出菜单,点击菜单弹出对话框

http://www.apkbus.com/android-14306-1-1.html?_dsign=47fb9469

//listview的长按弹出菜单

main_lv.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        menu.add(0, 0, 0, "删除");
        menu.add(0, 1, 1, "修改");
    }
});

菜单的点击事件,和弹出对话框**

@Override
public boolean onContextItemSelected(MenuItem aItem) {
    ContextMenu.ContextMenuInfo menuInfo = (ContextMenu.ContextMenuInfo) aItem.getMenuInfo();
    /* / *打开项目的ID,以获取用户选择的内容。* /*/
    switch (aItem.getItemId()) {
        //CONTEXTMENU_DELETEITEM     赋值为0  代表菜单中第一个被点击
        case 0:
          /*   / *按位置将所选项目从适配器中取出。* /*/
            //Bean.StudentListBean favContexted = (Bean.StudentListBean) main_lv.getAdapter().getItem(0);
           /* / *从列表中将其删除。* /*/
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            // 设置提示框的标题
            builder.setTitle("提示标题").
                    // 设置要显示的信息
                            setMessage("文本的提示信息:真的要删除吗?").
                    // 设置确定按钮
                            setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Bean.StudentListBean favContexted2 = (Bean.StudentListBean) main_lv.getAdapter().getItem(0);
                            studentList.remove(favContexted2);
                            adapter.notifyDataSetChanged();
                        }
                    }).show();
            return true; /* true means: "we handled the event". */
        //代表菜单中第2个被点击
        case 1:
            /*   / *按位置将所选项目从适配器中取出。* /*/
            Bean.StudentListBean favContexted2 = (Bean.StudentListBean) main_lv.getAdapter().getItem(0);
            /* / *从列表中将其删除。* /*/
            Toast.makeText(this,"111111",Toast.LENGTH_SHORT).show();
           /* studentList.remove(favContexted2);
            adapter.notifyDataSetChanged();*/
            //refreshFavListItems();
            return true; /* true means: "we handled the event". */
    }
    return false;
}

main代码

public class MainActivity extends BaseActivity {
ListView main_lv;
ItemAdapter adapter;
    List<Bean.StudentListBean> studentList=new ArrayList<>();
    String json;
    protected static final int CONTEXTMENU_DELETEITEM = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        json = getJson("info.txt", this);
        main_lv=findViewById(R.id.main_lv);
        adapter=new ItemAdapter(this,studentList);
        main_lv.setAdapter(adapter);

        Gson gson=new Gson();
        Bean stubean=gson.fromJson(json, Bean.class);
        List<Bean.StudentListBean> feedlist=stubean.getStudentList();
        studentList.addAll(feedlist);

        adapter.notifyDataSetChanged();
        //listview的长按弹出菜单
        main_lv.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
            @Override
            public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
                menu.add(0, 0, 0, "删除");
                menu.add(0, 1, 1, "修改");
            }
        });

        }
    private void initListView() {
        /* Loads the items to the ListView. */
        //refreshFavListItems();
         /* / *将上下文菜单侦听器添加到ListView。* /*/
        main_lv.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {

            public void onCreateContextMenu(ContextMenu conMenu, View view , ContextMenu.ContextMenuInfo info) {
                conMenu.setHeaderTitle("ContextMenu");
                conMenu.add(0, 0, 0, "Delete this favorite!");
/* / *添加任意数量的上下文菜单选项。* /*/
                /* Add as many context-menu-options as you want to. */
            }
        });

        main_lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {
                Toast.makeText(MainActivity.this, "111111111111", Toast.LENGTH_SHORT).show() ;
            }
        });
    }
    @Override
    public boolean onContextItemSelected(MenuItem aItem) {
        ContextMenu.ContextMenuInfo menuInfo = (ContextMenu.ContextMenuInfo) aItem.getMenuInfo();
        /* / *打开项目的ID,以获取用户选择的内容。* /*/
        switch (aItem.getItemId()) {
            //CONTEXTMENU_DELETEITEM     赋值为0  代表菜单中第一个被点击
            case 0:
              /*   / *按位置将所选项目从适配器中取出。* /*/
                //Bean.StudentListBean favContexted = (Bean.StudentListBean) main_lv.getAdapter().getItem(0);
               /* / *从列表中将其删除。* /*/
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                // 设置提示框的标题
                builder.setTitle("提示标题").
                        // 设置要显示的信息
                                setMessage("文本的提示信息:真的要删除吗?").
                        // 设置确定按钮
                                setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Bean.StudentListBean favContexted2 = (Bean.StudentListBean) main_lv.getAdapter().getItem(0);
                                studentList.remove(favContexted2);
                                adapter.notifyDataSetChanged();
                            }
                        }).show();
                return true; /* true means: "we handled the event". */
            //代表菜单中第2个被点击
            case 1:
                /*   / *按位置将所选项目从适配器中取出。* /*/
                Bean.StudentListBean favContexted2 = (Bean.StudentListBean) main_lv.getAdapter().getItem(0);
                /* / *从列表中将其删除。* /*/
                Toast.makeText(this,"111111",Toast.LENGTH_SHORT).show();
               /* studentList.remove(favContexted2);
                adapter.notifyDataSetChanged();*/
                //refreshFavListItems();
                return true; /* true means: "we handled the event". */
        }
        return false;
    }
    public static String getJson(String fileName, Context context) {
        //将json数据变成字符串
        StringBuilder stringBuilder = new StringBuilder();
        try {
            //获取assets资源管理器
            AssetManager assetManager = context.getAssets();
            //通过管理器打开文件并读取
            BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName)));
            String line;
            while ((line = bf.readLine()) != null) {
                stringBuilder.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return stringBuilder.toString();
    }


}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值