2015-08-14 73 views
0

我有這樣的Android代碼,從一個JavaScript函數得到的返回值,我有這樣的代碼:執行此JavaScript函數,並得到一個返回值

file_list_detail_webview1.evaluateJavascript("javascript:getValue();", new ValueCallback<String>() { 
       @Override 
       public void onReceiveValue(String s) { 

        JsonReader reader = new JsonReader(new StringReader(s)); 

        // Must set lenient to parse single values 
        reader.setLenient(true); 

        try { 
         if(reader.peek() != JsonToken.NULL) { 
          if(reader.peek() == JsonToken.STRING) { 
           String msg = reader.nextString(); 
           if(msg != null) { 
            FileFunction fileFunction = new FileFunction(); 
            try { 
             fileFunction.writeFile(filePath, msg); 
            } catch (ArcAppException e) { 
             e.printStackTrace(); 
            } 
           } 
          } 
         } 
        } catch (IOException e) { 
         Log.e("TAG", "MainActivity: IOException", e); 
        } finally { 
         try { 
          reader.close(); 
         } catch (IOException e) { 
          // NOOP 
         } 
        } 
       } 
      }); 

我想這樣做一個public String裏面,這樣我可以重用它,只是從中得到返回值。我嘗試過這樣做,但是我使用的字符串出現錯誤。

任何人都可以請給我一個例子如何正確地做到這一點?

回答

0

我沒有足夠的評論聲望,但我不明白你爲什麼使用字符串作爲方法名稱。是不是字符串public void String是不允許的,因爲字符串是一個保留關鍵字,不允許用作方法名稱。

如果要將返回類型設置爲字符串,則需要聲明該方法爲public String yourMethodName

相關問題