2015-09-25 76 views
1

我試圖調用函數getUrlContents(串)seismic_text.java文件裏面我MainActivity.java文件。我怎樣才能從文件的任何地方調用函數?任何信息或提示表示讚賞。我在下面列出了我的文件。如何在Android Studio中使用java中的其他文件導入類?

這是我MainActivity.java

package bt.alfaquake; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.app.NotificationManager; 
import android.content.Intent; 
import android.view.View; 
import android.app.PendingIntent; 
import android.support.v7.app.ActionBarActivity; 
import android.support.v4.app.NotificationCompat; 
import bt.alfaquake.seismic_text; 

public class MainActivity extends AppCompatActivity { 

    NotificationCompat.Builder notification; 
    private static final int uniqueID = 123; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     notification = new NotificationCompat.Builder(this); 
    }  
} 

這是我seismic_text.java: 包bt.alfaquake;

import java.net.*; 
import java.io.*; 

public class seismic_text { 

     public static String getUrlContents(String theUrl) { 
      StringBuilder content = new StringBuilder(); 
      try 
      { 
       URL url = new URL(theUrl); 
       URLConnection urlConnection = url.openConnection(); 

       BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
       String line; 

       while ((line = bufferedReader.readLine()) != null) 
       { 
        content.append(line + "\n"); 
       } 
       bufferedReader.close(); 
      } 
      catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 
      return content.toString(); 
     } 
    } 
} 
+0

是否seismic_text。 getUrlContents(url)的作品? – Oleksandr

回答

0

你可以叫seismic_text.getUrlContents(URL);但它會導致NetworkOnMainThreadException

只是將此調用包裝爲Simple AsynkTask。

class MyTask extends AsyncTask<Void, Void, String> { 

    @Override 
    protected String doInBackground(Void... params) { 
     try { 
     return seismic_text.getUrlContents(url); 
     } catch (InterruptedException e) { 
     e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     // TODO handle result here 
    } 
    } 

從你的代碼中調用它:

new MyTask().execute(); 
0

在MainActivty.java簡單地稱之爲:

seismic_text.getUrlContents(url); 
+0

我認爲它會失敗與NetworkOnMainTreadException - http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html – Oleksandr

+1

他可以使用異步任務,我的答案是根據問題,而不是他有詢問有關異常處理 – Aakash

相關問題