如何获取android中不同类之间的值

时间:2014-08-21 09:16:36

标签: java android public-key

大家。

在我的应用程序中,有一个公共字符串变量(route_directory)和两个按钮(downloadFolderButton,button_import_csv)。

首先按下downloadFolderButton并从数据库中获取数据。数据将被放入字符串route_directory中。 之后将按下button_import_csv。它将获取route_directory以执行其他功能。 以下是我的代码(省略了一些逻辑)。但是,日食认为第二个路径中的route_direct是一个未定义的类。

import class_1...
import class_2...

public class project extends Activity{
public String A;
public void onCreate(Bundle savedInstanceState){
Button downloadFolderButton = (Button) findViewById(R.id.button_download_folder_id);
    downloadFolderButton.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) 
        {
            Cursor cur=db.rawQuery("SELECT route as _id,ftp_server_ip,ftp_folder,csv_local_folder,upload_folder,download_folder FROM pda WHERE default_route =?",new String [] {"Y"});
            if (cur.moveToFirst()){
                default_route = cur.getString(cur.getColumnIndex("_id"));
                ftp_server_ip = cur.getString(cur.getColumnIndex("ftp_server_ip"));
                ftp_folder = cur.getString(cur.getColumnIndex("ftp_folder"));
                csv_local_folder = cur.getString(cur.getColumnIndex("csv_local_folder"));
                upload_folder =  cur.getString(cur.getColumnIndex("upload_folder"));
                download_folder = cur.getString(cur.getColumnIndex("download_folder"));

                File directory = Environment.getExternalStorageDirectory();


                route_folder= directory.getPath()+csv_local_folder+"/"+default_route;
                File route_directory = new File(route_folder);

                DeleteRecursive(route_directory);

                route_directory.mkdir();


                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_PICK);

                Uri ftpUri = Uri.parse("ftp://"+ftp_server_ip);
                intent.setDataAndType(ftpUri, "vnd.android.cursor.dir/lysesoft.andftp.uri");
                intent.putExtra("ftp_username", "oracle9i");
                intent.putExtra("ftp_password", "liaixlau");
                intent.putExtra("ftp_pasv", "true");
                intent.putExtra("command_type", "download");
                intent.putExtra("progress_title", "Downloading folder ...");
                intent.putExtra("remote_file1", ftp_folder);        
                intent.putExtra("local_folder", route_folder);
                startActivityForResult(intent, DOWNLOAD_FOLDER_REQUEST);
            }
            cur.close();

        }
    }); 

    Button button_import_csv = (Button) findViewById(R.id.button_import);
    button_import_csv.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){

            db.delete(tableName[0], null, null );
            db.delete(tableName[1], null, null );
            db.delete(tableName[2], null, null );
            db.delete(tableName[3], null, null );
            db.delete(tableName[4], null, null );
            db.delete(tableName[5], null, null );
            db.delete(tableName[6], null, null );
            db.delete(tableName[7], null, null );
            db.delete(tableName[8], null, null );
            db.delete(tableName[9], null, null );
            db.delete(tableName[10], null, null );
            db.delete(tableName[11], null, null );
            db.delete(tableName[12], null, null );
            db.delete(tableName[13], null, null );
            db.delete(tableName[14], null, null );
            db.delete(tableName[15], null, null );
            db.delete(tableName[16], null, null );
            db.delete(tableName[17], null, null );
            db.delete(tableName[18], null, null );
            db.delete(tableName[19], null, null );

            try{

                File[] csvfile = route_directory.listFiles();
                csvfile_string = Arrays.toString(csvfile);

                Log.d("Importcsv",csvfile_string);


                for(int j=0;j<20;j++){

                    InputStreamReader isr = new InputStreamReader(new FileInputStream(csvfile[j]),"BIG5");

                    BufferedReader buffer = new BufferedReader(isr);
                    ContentValues contentValues=new ContentValues();
                    String line = buffer.readLine();            //read first line to get the column
                    String[] cols = line.split("\t");           

                    while ((line = buffer.readLine()) != null) {
                        String[] str = line.split("\t");
                        for (int i = 0; i < cols.length; i++) {
                            str[i] = str[i].replaceAll("\"", "");
                            contentValues.put(cols[i], str[i]);
                            Log.d("ice",cols[i] + "= " + str[i]);
                        }
                        ret = db.insert(tableName[j], null, contentValues);
                        }
                    buffer.close();
                    }
                }catch (IOException e){

            }

        }
    });
}

1 个答案:

答案 0 :(得分:0)

您在匿名内部类中定义了route_directory(对于按钮dowloadFolderButton&#39; s onClickListener.onClick()。如果您要将其定义为活动中的私有变量,您将在onClick()函数中都具有可见性。

相关问题