如何将类扩展活动转换为独立类

时间:2014-04-10 05:30:07

标签: android class android-activity

我有一个当前正在扩展Activity的类,我有onCreate(),OnBackPress()等方法。我想把它变成一个独立的类,但所有上面的方法都是未定义的。问题是什么?难道不能导入这些课程吗?例如,我为findViewById导入android.view.View但它仍然没有区别。请指教。

File_Explore

 public class File_Explorer extends Activity {

        // Stores names of traversed directories
        ArrayList<String> str = new ArrayList<String>();

        // Check if the first level of the directory structure is the one showing
        private Boolean firstLvl = true;
         String aDataRow = "";  
         static StringBuilder aBuffer = new StringBuilder();
         String aBuffer1="";
        private static final String TAG = "F_PATH";
        static long fileSizeInMB;
        private Item[] fileList;
        private File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
        private String chosenFile;
        private static final int DIALOG_LOAD_FILE = 0;
        static String fileExtension="";
        ListAdapter adapter;

        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            loadFileList();

            showDialog(DIALOG_LOAD_FILE);
            Log.d(TAG, path.getAbsolutePath());

        }

        private void loadFileList() {
            try {
                path.mkdirs();
            } catch (SecurityException e) {
                Log.e(TAG, "unable to write on the sd card ");
            }

            // Checks whether path exists
            if (path.exists()) {
                FilenameFilter filter = new FilenameFilter() {
                    @Override
                    public boolean accept(File dir, String filename) {
                        File sel = new File(dir, filename);
                        // Filters based on whether the file is hidden or not
                        return (sel.isFile() || sel.isDirectory())
                                && !sel.isHidden();

                    }
                };

                String[] fList = path.list(filter);
                fileList = new Item[fList.length];
                for (int i = 0; i < fList.length; i++) {
                    fileList[i] = new Item(fList[i], R.drawable.ic_launcher);

                    // Convert into file path
                    File sel = new File(path, fList[i]);

                    // Set drawables
                    if (sel.isDirectory()) {
                        fileList[i].icon = R.drawable.ic_launcher;
                        Log.d("DIRECTORY", fileList[i].file);
                    } else {
                        Log.d("FILE", fileList[i].file);
                    }
                }

                if (!firstLvl) {
                    Item temp[] = new Item[fileList.length + 1];
                    for (int i = 0; i < fileList.length; i++) {
                        temp[i + 1] = fileList[i];
                    }
                    temp[0] = new Item("Back", R.drawable.ic_launcher);
                    fileList = temp;
                }
            } else {
                Log.e(TAG, "path does not exist");
            }

            adapter = new ArrayAdapter<Item>(this,
                    android.R.layout.select_dialog_item, android.R.id.text1,
                    fileList) {
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                    // creates view
                    View view = super.getView(position, convertView, parent);
                    TextView textView = (TextView) view
                            .findViewById(android.R.id.text1);

                    // put the image on the text view
                    textView.setCompoundDrawablePadding(
                            fileList[position].icon);



                    return view;
                }
            };

        }

        private class Item {
            public String file;
            public int icon;

            public Item(String file, Integer icon) {
                this.file = file;
                this.icon = icon;
            }

            @Override
            public String toString() {
                return file;
            }
        }

        @Override
        protected Dialog onCreateDialog(int id) {
            Dialog dialog = null;
            AlertDialog.Builder builder = new Builder(this);

            if (fileList == null) {
                Log.e(TAG, "No files loaded");
                dialog = builder.create();
                return dialog;
            }

            switch (id) {
            case DIALOG_LOAD_FILE:
                builder.setTitle("Choose your file");
                builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        chosenFile = fileList[which].file;
                        File sel = new File(path + "/" + chosenFile);
                        if (sel.isDirectory()) {
                            firstLvl = false;

                            // Adds chosen directory to list
                            str.add(chosenFile);
                            fileList = null;
                            path = new File(sel + "");

                            loadFileList();

                            removeDialog(DIALOG_LOAD_FILE);
                            showDialog(DIALOG_LOAD_FILE);
                            Log.d(TAG, path.getAbsolutePath());


                        }

                        // Checks if 'up' was clicked
                        else if (chosenFile.equalsIgnoreCase("Back") && !sel.exists()) {

                            // present directory removed from list

                            String s = str.remove(str.size() - 1);

                            // path modified to exclude present directory
                            path = new File(path.toString().substring(0,
                                    path.toString().lastIndexOf(s)));
                            fileList = null;

                            // if there are no more directories in the list, then
                            // its the first level
                            if (str.isEmpty()) {
                                firstLvl = true;
                            }
                            loadFileList();

                            removeDialog(DIALOG_LOAD_FILE);
                            showDialog(DIALOG_LOAD_FILE);
                            Log.d(TAG, path.getAbsolutePath());

                        }
                        // File picked
                        else {
                            // Perform action with file picked
                             fileExtension
                              = MimeTypeMap.getFileExtensionFromUrl(sel.toString());
                            // Toast.makeText(getApplication(), fileExtension, Toast.LENGTH_LONG).show();
                             long fileSizeInBytes = sel.length();
                             fileSizeInMB = fileSizeInBytes/(1024*1024);
                             Toast.makeText(getApplication(), String.valueOf(fileSizeInMB).toString(), Toast.LENGTH_LONG).show();
                             if(fileSizeInMB >1){
                                  Intent returnIntent = new Intent();
                                    returnIntent.putExtra("name", aBuffer.toString());
                                    setResult(RESULT_OK, returnIntent); 


                             }
                             else{

                                try{
                                //  ArrayList<String> MyFiles = new ArrayList<String>();
                               FileInputStream fIn = new FileInputStream(sel);  
                                BufferedReader myReader = new BufferedReader(  
                                        new InputStreamReader(fIn));  

                                while ((aDataRow = myReader.readLine()) != null) { 

                                    aBuffer.append(aDataRow.toString()).append("\n"); 

                                }
                               // aBuffer1 = aBuffer.toString();
                                myReader.close();  




                                }catch (FileNotFoundException e) 
                            {e.printStackTrace();}  
                            catch (IOException e) {  
                                e.printStackTrace();  
                            }  
                         // Toast.makeText(getApplicationContext(),aBuffer,Toast.LENGTH_LONG).show();  
                            Intent returnIntent = new Intent();
                            returnIntent.putExtra("name", aBuffer.toString());
                            setResult(RESULT_OK, returnIntent);

                            finish();

                        }  
                             }

                        aBuffer.delete(0, aBuffer.length());
                    //  aBuffer1=null;  
                        }

                    }
                );
                break;
            }
            dialog = builder.show();
            return dialog;  
        }

        @Override
        public void onBackPressed() {
            // TODO Auto-generated method stub
            super.onBackPressed();
            Intent i= new Intent(this, File_Selecter.class);
              startActivity(i);
        }


    }

0 个答案:

没有答案