0

ユーザーがディレクトリをシングルクリックしてそこに移動できるようにする FTP/FileBrowser アクティビティを作成しましたが、リストは一括削除、ダウンロードなどの複数選択であるため、ダブルクリックが必要になるようにしたいと思います。int var を作成しました。リスト項目がクリックされるたびに ++ を実装する remclickcount と呼ばれますが、ディレクトリ A を 2 回クリックすると正常に動作します。ただし、ディレクトリ A をクリックしてからディレクトリ B をクリックすると、ディレクトリ B に移動します。1 つのディレクトリのクリック数をカウントするにはどうすればよいですか?

remote.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                r_itla.setSelectedPosition(position);
                String selectedFile = r_directoryEntries.get(position)
                        .getText();
                boolean isDirectory = map.get(selectedFile).booleanValue();
                if (isDirectory){
                    remclickcount++;
                    if(remclickcount==2) {

                    r_directoryEntries.clear();
                    r_itla.notifyDataSetChanged();
                    ftpPrintFilesList(selectedFile);
                    try {
                        FTPHelper.mFTPClient
                                .changeWorkingDirectory(selectedFile.toString());
                        remclickcount=0;
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    }
                } else if (!isDirectory) {
                    // Toast.makeText(FTPConnector.this, selectedFile,
                    // Toast.LENGTH_LONG).show();
                    currentRemoteFile = selectedFile;
                }

            }
        });

作業コード:

remote.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                r_itla.setSelectedPosition(position);
                String selectedFile = r_directoryEntries.get(position)
                        .getText();
                boolean isDirectory = map.get(selectedFile).booleanValue();
                if (isDirectory){
                    if(selectedFile.equals(lastClickSelectedFile)) {

                    r_directoryEntries.clear();
                    r_itla.notifyDataSetChanged();
                    ftpPrintFilesList(selectedFile);
                    try {
                        FTPHelper.mFTPClient
                                .changeWorkingDirectory(selectedFile.toString());

                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    }else if(!selectedFile.equals(lastClickSelectedFile)){
                        lastClickSelectedFile = selectedFile;
                    }
                } else if (!isDirectory) {
                    // Toast.makeText(FTPConnector.this, selectedFile,
                    // Toast.LENGTH_LONG).show();
                    currentRemoteFile = selectedFile;
                }

            }
        });
4

1 に答える 1