gpt4 book ai didi

Android ListView 上下文菜单

转载 作者:行者123 更新时间:2023-11-29 16:10:17 25 4
gpt4 key购买 nike

当用户点按我的 ListView 中的某个项目时,我正在尝试创建一个 ContextMenu。但是,当我按住我的项目时,我的代码没有显示任何内容。有人可以检查我的代码吗?谢谢。

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");
}

最佳答案

试试这个:

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;
}
});

如果要关闭,甚至可以使用 closeContextMenu()。希望这可以帮助。

关于Android ListView 上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14035550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com