2015-09-25 75 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

相关问题