最近在项目中使用到了ContextMenu还有SimpleAdapter,觉得挺好用的,在此记录一下
示例效果:
示例代码如下:
package com.sg7.contextmenu; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.ContextMenu; import android.view.MenuItem; import android.view.View; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView lv = (ListView) findViewById(R.id.lv); List<Map<String, Object>> data = getData(); //生成适配器的Item和动态数组对应的元素,第三个参数使用系统提供的布局文件,第四,五个参数表示将数据中的map的key对应的值显示在布局文件的位置 SimpleAdapter adapter = new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, new String[]{"number", "address"}, new int[]{android.R.id.text1, android.R.id.text2}); lv.setAdapter(adapter); //添加长按点击 lv.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { menu.setHeaderTitle("菜单"); menu.add(0, 0, 0, "菜单一"); menu.add(0, 0, 2, "菜单二"); menu.add(0, 0, 0, "菜单三"); menu.add("菜单四"); } }); } //长按菜单响应函数 @Override public boolean onContextItemSelected(MenuItem item) { Toast.makeText(MainActivity.this, item.getTitle(), Toast.LENGTH_SHORT).show(); return super.onContextItemSelected(item); } public List<Map<String, Object>> getData() { List<Map<String, Object>> data = new ArrayList<>(); for (int i = 0; i < 30; i++) { HashMap<String, Object> map = new HashMap<>(); map.put("number", "number" + i); map.put("address", "address" + i); data.add(map); } return data; } }
源码地址:http://download.csdn.net/detail/lingwu7/9371403
欢迎朋友们加入中国安卓开发者群:146844427