Descargar un sitio web a una cadena

Después de hacer algunos tutoriales básicos, comencé a hacer mi primera aplicación real de Android en eclipse. Quiero que esta aplicación compruebe si el texto de un EditText coincide con el texto de un sitio web (éste: http://www.augustinianum.eu/roosterwijzigingen/14062012.pdf (contiene los cambios de horario de mi escuela)). He averiguado cómo hacer que la aplicación compruebe si el texto en el EditText coincide con una cadena (con el método contains ()), así que ahora lo único que tengo que hacer es descargar todo el texto de ese sitio web a un cuerda. Pero no tengo ni idea de cómo hacerlo. O hay quizá un método que puedo comprobar con si un Web site contiene una cierta palabra sin descargar el texto del Web site a una cadena.

¡Gracias!

(BTW no soy inglés así que plz me perdona si he hecho algunos errores relacionados con el lenguaje.)

@androider No puedo publicar mi código en el cuadro de comentarios, así que aquí está:

package me.moop.mytwitter; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.app.Activity; import android.app.ProgressDialog; public class MainActivity extends Activity { Button mBtnCheck; EditText mEtxtGroup; ProgressDialog mProgressDialog; TwitterUser mTwitterUser; TextView mTxtv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.nicelayout3); mBtnCheck = (Button) findViewById(R.id.btnCheck); mEtxtGroup = (EditText) findViewById(R.id.etxtGroup); mTxtv1 = (TextView) findViewById(R.id.textView1); } public void checkScheduleChange(View view){ if (view == mBtnCheck){ String group; group = mEtxtGroup.getText().toString(); if (group.length() > 0){ mProgressDialog = new ProgressDialog(this); mProgressDialog.setMessage("Bezig met checken voor roosterwijzigingen..."); mProgressDialog.show(); try { URL url = new URL("http://www.augustinianum.eu/roosterwijzigingen/14062012.pdf"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null){ mProgressDialog.dismiss(); if(str.contains(mEtxtGroup.getText().toString())){ Toast.makeText(this, "U hebt een roosterwijziging.", Toast.LENGTH_LONG).show(); } else{ Toast.makeText(this, "U hebt geen roosterwijzigingen", Toast.LENGTH_LONG).show(); } } in.close(); } catch (MalformedURLException e) { Toast.makeText(this, "Er is een fout opgetreden, probeer opniew.", Toast.LENGTH_LONG).show(); } catch (IOException e) { Toast.makeText(this, "Er is een fout opgetreden, probeer opniew.", Toast.LENGTH_LONG).show(); } } else{ Toast.makeText(this, "Voer een klas in", Toast.LENGTH_LONG).show(); } } } } 

Estas son las propiedades del botón:

  <Button android:id="@+id/btnCheck" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:clickable="true" android:onClick="checkScheduleChange" android:text="Check" > 

Usted puede conseguir el texto usando InputStream Reader como esto.

 try { URL url = new URL("http://yourwebpage.com"); // Read all the text returned by the server BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null) { // str is one line of text; readLine() strips the newline character(s) // You can use the contain method here. if(str.contains(editText.getText().toString)) { You can perform your logic here!!!!! } } in.close(); } catch (MalformedURLException e) { } catch (IOException e) { } 

También agrega un permiso adicional en tus aplicaciones. Archivo de manifiesto:

 <uses-permission android:name="android.permission.INTERNET/> 

// ============================ EDIT =================== ============= //

 if (group.length() > 0) { mProgressDialog = new ProgressDialog(this); mProgressDialog.setMessage("Bezig met checken voor roosterwijzigingen..."); mProgressDialog.show(); try { URL url = new URL("http://www.augustinianum.eu/roosterwijzigingen/14062012.pdf"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null){ if(str.contains(mEtxtGroup.getText().toString())){ if(mProgressDialog.isShowing()) { mProgressDialog.dismiss(); } Toast.makeText(this, "U hebt een roosterwijziging.", Toast.LENGTH_LONG).show(); break; } } in.close(); } catch (MalformedURLException e) { Toast.makeText(this, "Er is een fout opgetreden, probeer opniew.", Toast.LENGTH_LONG).show(); } catch (IOException e) { Toast.makeText(this, "Er is een fout opgetreden, probeer opniew.", Toast.LENGTH_LONG).show(); } if(mProgressDialog.isShowing()) { mProgressDialog.dismiss(); } } else{ Toast.makeText(this, "Voer een klas in", Toast.LENGTH_LONG).show(); } 

Esta es una buena pregunta relacionada con Java: ¿Cómo se descarga mediante programación una página Web en Java

A continuación, puede implementar cualquier método que elija en su aplicación. Una cosa a tener en cuenta es que debe habilitar el permiso de INTERNET en su aplicación para poder acceder a Internet.

  • ¿Estancado en la pantalla del emulador en Eclipse con Android Development?
  • Phonegap no se instalará o funcionará correctamente
  • Error al abrir el Eclipse Android Layout Editor
  • Cómo cambiar la versión de minSDK en eclipse?
  • Fallo en la instalación; Programa que accede al directorio android-sdk \ platform-tools
  • Cómo crear archivos .docx y .xlsx en Android
  • Configuración persistente del nombre predeterminado en un proyecto de Android en Eclipse
  • No se puede abrir el directorio de datos en el teléfono Android con raíz
  • Incapaz de reemplazar / navegar fragmentos
  • Carga de una biblioteca nativa para Android mediante Eclipse
  • ¿Cómo puedo iniciar y detener mi countdowntimer a través de un botón?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.