Java 如何在ListView中使用onLongClick方法?

Java 如何在ListView中使用onLongClick方法?,java,android,Java,Android,大家好,我是android的新手,我有一个任务,当用户长时间点击列表视图中的项目时,会输出一个选项。你能帮我一下吗?提前谢谢。我在互联网上获得了这段代码,并试图对其进行调整,但我不知道在哪里只需长按一下该方法。请帮帮我,伙计们 public class MainActivity extends ListActivity{ private File mCurrentNode = null; private File mLastNode = null; privat

大家好,我是android的新手,我有一个任务,当用户长时间点击列表视图中的项目时,会输出一个选项。你能帮我一下吗?提前谢谢。我在互联网上获得了这段代码,并试图对其进行调整,但我不知道在哪里只需长按一下该方法。请帮帮我,伙计们

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