Java 如何在ListView中使用onLongClick方法?
大家好,我是android的新手,我有一个任务,当用户长时间点击列表视图中的项目时,会输出一个选项。你能帮我一下吗?提前谢谢。我在互联网上获得了这段代码,并试图对其进行调整,但我不知道在哪里只需长按一下该方法。请帮帮我,伙计们Java 如何在ListView中使用onLongClick方法?,java,android,Java,Android,大家好,我是android的新手,我有一个任务,当用户长时间点击列表视图中的项目时,会输出一个选项。你能帮我一下吗?提前谢谢。我在互联网上获得了这段代码,并试图对其进行调整,但我不知道在哪里只需长按一下该方法。请帮帮我,伙计们 public class MainActivity extends ListActivity{ private File mCurrentNode = null; private File mLastNode = null; privat
public class MainActivity extends ListActivity{
private File mCurrentNode = null;
private File mLastNode = null;
private File mRootNode = null;
private ArrayList<File> mFiles = new ArrayList<File>();
private CustomAdapter mAdapter = null;
private String fname;
private Context context;
private ArrayList<File> objname;
File f;
String filename;
Button df;
private Bundle savedInstanceState;
ListView parent=null;
int position=0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File Audio = new File(Environment.getExternalStorageDirectory() + "/Audio");
File Ebook = new File(Environment.getExternalStorageDirectory() + "/Ebook");
File Images = new File(Environment.getExternalStorageDirectory() + "/Images");
File Video = new File(Environment.getExternalStorageDirectory() + "/Video");
Audio.mkdirs();
Ebook.mkdirs();
Images.mkdirs();
Video.mkdirs();
if(!Audio.exists())
{
if(Audio.mkdir())
{
//directory is created;
}
}
if(!Ebook.exists())
{
if(Audio.mkdir())
{
//directory is created;
}
}
if(!Images.exists())
{
if(Audio.mkdir())
{
//directory is created;
}
}
if(!Video.exists())
{
if(Audio.mkdir())
{
//directory is created;
}
}
mAdapter = new CustomAdapter(this, R.layout.list_row, mFiles);
setListAdapter(mAdapter);
if (savedInstanceState != null) {
mRootNode = (File)savedInstanceState.getSerializable("root_node");
mLastNode = (File)savedInstanceState.getSerializable("last_node");
mCurrentNode = (File)savedInstanceState.getSerializable("current_node");
}
refreshFileList();
}
/* public void onLongClick(ListView parent, View v, int position, long id){
f = (File) parent.getItemAtPosition(position);
//Browser
if (position == 1) {
if (mCurrentNode.compareTo(mRootNode)!=0) {
mCurrentNode = f.getParentFile();
refreshFileList();
Toast.makeText(this, "This is postion 1 "+f.getName()+"!", Toast.LENGTH_SHORT).show();
// out();
}
} else if (f.isDirectory()) {
//f.delete();
mCurrentNode = f;
refreshFileList();
Toast.makeText(this, "This is postion 2 "+f.getName()+"!", Toast.LENGTH_SHORT).show();
//out();
} else {
Toast.makeText(this, "You selected: "+f.getName()+"!", Toast.LENGTH_SHORT).show();
//out();
}
//});
}*/
//end of bundle
private void refreshFileList() {
if (mRootNode == null) mRootNode = new File(Environment.getExternalStorageDirectory().toString());
if (mCurrentNode == null) mCurrentNode = mRootNode;
mLastNode = mCurrentNode;
File[] files = mCurrentNode.listFiles();
mFiles.clear();
mFiles.add(mRootNode);
mFiles.add(mLastNode);
if (files!=null) {
for (int i = 0; i< files.length; i++) mFiles.add(files[i]);
}
mAdapter.notifyDataSetChanged();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putSerializable("root_node", mRootNode);
outState.putSerializable("current_node", mCurrentNode);
outState.putSerializable("last_node", mLastNode);
super.onSaveInstanceState(outState);
}
/**
* Listview on click handler.
*/
@Override
public void onListItemClick(ListView parent, View v, int position, long id){
f = (File) parent.getItemAtPosition(position);
//Browser
ListView lst=null;
lst.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long id) {
// TODO Auto-generated method stub
if (position == 1) {
if (mCurrentNode.compareTo(mRootNode)!=0) {
mCurrentNode = f.getParentFile();
refreshFileList();
// Toast.makeText(this, "This is postion 1 "+f.getName()+"!", Toast.LENGTH_SHORT).show();
// out();
}
} else if (f.isDirectory()) {
//f.delete();
mCurrentNode = f;
refreshFileList();
// Toast.makeText(this, "This is postion 2 "+f.getName()+"!", Toast.LENGTH_SHORT).show();
out();
} else {
//Toast.makeText(this, "You selected: "+f.getName()+"!", Toast.LENGTH_SHORT).show();
//out();
}
return false;
}
});
}
//@Override
public void out(){
Toast.makeText(this, "You selected: "+f.getName()+"!", Toast.LENGTH_SHORT).show();
}
}
public类MainActivity扩展了ListActivity{
私有文件mCurrentNode=null;
私有文件mLastNode=null;
私有文件mRootNode=null;
private ArrayList mFiles=new ArrayList();
私有CustomAdapter mAdapter=null;
私有字符串fname;
私人语境;
私有ArrayList objname;
文件f;
字符串文件名;
按钮df;
私有Bundle savedInstanceState;
ListView父项=null;
int位置=0;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File Audio=新文件(Environment.getExternalStorageDirectory()+“/Audio”);
File Ebook=新文件(Environment.getExternalStorageDirectory()+“/Ebook”);
File Images=新文件(Environment.getExternalStorageDirectory()+“/Images”);
文件视频=新文件(Environment.getExternalStorageDirectory()+“/Video”);
Audio.mkdirs();
Ebook.mkdirs();
Images.mkdirs();
Video.mkdirs();
如果(!Audio.exists())
{
if(Audio.mkdir())
{
//创建目录;
}
}
如果(!Ebook.exists())
{
if(Audio.mkdir())
{
//创建目录;
}
}
如果(!Images.exists())
{
if(Audio.mkdir())
{
//创建目录;
}
}
如果(!Video.exists())
{
if(Audio.mkdir())
{
//创建目录;
}
}
mAdapter=新的CustomAdapter(此,R.layout.list_行,mFiles);
setListAdapter(mAdapter);
如果(savedInstanceState!=null){
mRootNode=(文件)savedInstanceState.getSerializable(“根节点”);
mLastNode=(文件)savedInstanceState.getSerializable(“最后一个节点”);
mCurrentNode=(文件)savedInstanceState.getSerializable(“当前_节点”);
}
刷新文件列表();
}
/*public void onLongClick(ListView父视图、视图v、整数位置、长id){
f=(文件)parent.getItemAtPosition(位置);
//浏览者
如果(位置==1){
if(mCurrentNode.compareTo(mRootNode)!=0){
mCurrentNode=f.getParentFile();
刷新文件列表();
Toast.makeText(这是position1“+f.getName()+”!”,Toast.LENGTH\u SHORT.show();
//out();
}
}else if(f.isDirectory()){
//f、 删除();
mCurrentNode=f;
刷新文件列表();
Toast.makeText(这是position2“+f.getName()+”!”,Toast.LENGTH\u SHORT.show();
//out();
}否则{
Toast.makeText(您选择的“+f.getName()+”!”,Toast.LENGTH\u SHORT.show();
//out();
}
//});
}*/
//束尾
私有无效刷新文件列表(){
如果(mRootNode==null)mRootNode=new文件(Environment.getExternalStorageDirectory().toString());
如果(mCurrentNode==null)mCurrentNode=mRootNode;
mLastNode=mCurrentNode;
File[]files=mCurrentNode.listFiles();
mFiles.clear();
mFiles.add(mRootNode);
添加(mLastNode);
如果(文件!=null){
对于(inti=0;i
试试这个:
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
// TODO Auto-generated method stub
Log.v("long clicked","pos"+" "+pos);
return true;
}
});
lv.setOnItemLongClickListener(新的OnItemLongClickListener(){
ListView lv = (ListView) findViewById(R.id.listView1);
lv.setLongClickable(true);
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0,View arg1,int arg2, long arg3){
ListView lv = (ListView) findViewById(R.id.listView1);
// Todo
}});
listview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int arg2, long arg3) {
// Can't manage to remove an item here
return false;
}
});
ListView lst=null;
lst = (ListView) findViewById(R.id.xmllistviewid);