我想在我的的ListView
上一个项目创建一个文本菜单
当用户敲击举行。然而,当我在我的项目挖掘握住我的code不显示任何东西。可能有人请检查我的code。谢谢你。
公共类MYD扩展SherlockListFragment工具 ActionBar.TabListener { 私人档案文件; 私人列表<串GT; myList中; 私人片段mFragment; 私人的ListView DLListView; 私人ArrayAdapter<串GT; listAdapter; @覆盖 公共无效onActivityCreated(捆绑savedInstanceState){ super.onActivityCreated(savedInstanceState); getActivity()的setContentView(R.layout.dl_listview)。 查看空= getActivity()findViewById(R.id.empty)。 DLListView =(ListView控件)getActivity()findViewById(R.id.DLListView)。 DLListView.setEmptyView(空); 如果(!Environment.getExternalStorageState()。等于( Environment.MEDIA_MOUNTED)){ Toast.makeText(getActivity(), 错误!未找到SD卡! Toast.LENGTH_LONG).show(); }其他{ 文件目录=新的文件(Environment.getExternalStorageDirectory() +文件分割符+ST); directory.mkdirs(); } DLListView =(ListView控件)getActivity()findViewById(R.id.DLListView)。 myList中=新的ArrayList<串GT;(); 文件SD卡= Environment.getExternalStorageDirectory(); 文件=新的文件(sdCard.getAbsolutePath()+/圣/); 文件列表[] = file.listFiles(); 的for(int i = 0; I< List.length的数字,我++){ 字符串文件名=列表[我] .getName(); 文件名= fileName.replace(,名为txt); myList.add(文件名); } listAdapter =新ArrayAdapter<串GT;(getActivity() R.layout.simplerow,myList中); DLListView.setAdapter(listAdapter); DLListView.setOnItemClickListener(新OnItemClickListener(){ @覆盖 公共无效onItemClick(适配器视图<>母公司,观景, INT位置,长的id){ // TODO自动生成方法存根 字符串textToPass = myList.get(位置); 意图I =新意图(getActivity(),ViewActivity.class); textToPass = textToPass.replace(textToPass +,textToPass +符.txt); i.putExtra(textToPass,textToPass); startActivity(ⅰ); } }); DLListView.setOnItemLongClickListener(新OnItemLongClickListener(){ @覆盖 公共布尔onItemLongClick(适配器视图<>母公司,观景, INT位置,长的id){ // TODO自动生成方法存根 返回false; }});} 公共无效onCreateContextMenu(文本菜单菜单视图V,ContextMenuInfo menuInfo) { super.onCreateContextMenu(菜单,V,menuInfo); AdapterContextMenuInfo信息=(AdapterContextMenuInfo)menuInfo; 字符串名称=((的TextView)info.targetView).getText()的toString()。 menu.setHeaderTitle(名); menu.add(0,v.getId(),0,播放); menu.add(0,v.getId(),1,删除); }
解决方案
试试这个:
DLListView.setOnItemLongClickListener(新OnItemLongClickListener(){ @覆盖 公共布尔onItemLongClick(适配器视图<>母公司,观景, INT位置,长的id){ // TODO自动生成方法存根 registerForContextMenu(视图); openContextMenu(视图); 返回false; }});
甚至可以使用 closeContextMenu()
如果您要关闭。希望这可以帮助。
I'm trying to create a ContextMenu
when user tap hold on an item in my ListView
. However my code doesn't show anything when I tap hold on my item. Could somebody please check on my code. Thank you.
public class MyD extends SherlockListFragment implements
ActionBar.TabListener {
private File file;
private List<String> myList;
private Fragment mFragment;
private ListView DLListView;
private ArrayAdapter<String> listAdapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getActivity().setContentView(R.layout.dl_listview);
View empty = getActivity().findViewById(R.id.empty);
DLListView = (ListView) getActivity().findViewById(R.id.DLListView);
DLListView.setEmptyView(empty);
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
Toast.makeText(getActivity(),
"Error! No SDCARD Found!",
Toast.LENGTH_LONG).show();
} else {
File directory = new File(Environment.getExternalStorageDirectory()
+ File.separator + "St");
directory.mkdirs();
}
DLListView = (ListView) getActivity().findViewById(R.id.DLListView);
myList = new ArrayList<String>();
File sdCard = Environment.getExternalStorageDirectory();
file = new File(sdCard.getAbsolutePath() + "/St/");
File list[] = file.listFiles();
for (int i = 0; i < list.length; i++) {
String fileName = list[i].getName();
fileName = fileName.replace(".txt", "");
myList.add(fileName);
}
listAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.simplerow, myList);
DLListView.setAdapter(listAdapter);
DLListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String textToPass = myList.get(position);
Intent i = new Intent(getActivity(), ViewActivity.class);
textToPass = textToPass.replace(textToPass + "", textToPass
+ ".txt");
i.putExtra("textToPass", textToPass);
startActivity(i);
}
});
DLListView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
return false;
}
});
}
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
String name = ((TextView) info.targetView).getText().toString();
menu.setHeaderTitle(name);
menu.add(0,v.getId(), 0, "Play");
menu.add(0,v.getId(),1,"Delete");
}
解决方案
Try this:
DLListView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
registerForContextMenu( view );
openContextMenu( view );
return false;
}
});
Even you can use closeContextMenu()
if you want to close. Hope this helps.
上一篇:Android的密钥库密码字段密钥、字段、密码、Android
下一篇:如何使用 Spring Boot 1.5.2 注入 Jersey 端点接口的实现?如何使用、接口、Spring、Boot