Aymen1322 Posted February 15, 2013 Share Posted February 15, 2013 Bonjour, SVP comment peut on récupérer une donnée qui existe dans une variable EditText dans la classe MainActivity pour l'utiliser dans la classe Connect (classe de la connexion a la BD). Classe MainActivity: package com.example.firstdb; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.Menu; import android.widget.EditText; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText editText1 = (EditText) findViewById(R.id.editText1); EditText editText2 = (EditText) findViewById(R.id.editText2); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } Classe Connect package com.example.firstdb; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; public class connect { public static void main(String[] args) { try { Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://localhost:5432/firstBD"; String user = "postgres"; String passwd = "000000"; int var ; int var2 =1; Connection conn = DriverManager.getConnection(url, user, passwd); //Création d'un objet Statement Statement state = (Statement) conn.createStatement(); //L'objet ResultSet contient le résul²tat de la requête SQL ResultSet result = ((Statement) state).executeQuery("SELECT * FROM Personne"); //On récupère les MetaData ResultSetMetaData resultMeta = result.getMetaData(); System.out.println("\n**********************************"); //On affiche le nom des colonnes for(int i = 1; i <= resultMeta.getColumnCount(); i++) System.out.print("\t" + resultMeta.getColumnName(i) + "\t *"); System.out.println("\n**********************************"); while(result.next()){ var = result.getInt("id"); if (edittex1 == var2) System.out.println("c'est la méme variable !"); else System.out.println("Oops, c'est pas la méme variable."); } result.close(); state.close(); } catch (Exception e) { e.printStackTrace(); } } } Quote Link to comment Share on other sites More sharing options...
free-tibet Posted June 19, 2013 Share Posted June 19, 2013 salut, l'idéal serait que ce soit ta classe "MainActivity" qui instancie ta classe "connect". Ainsi tu pourrais y passer les valeurs contenue dans les EditText via le constructeur ou un setter. ex: Classe MainActivity: package com.example.firstdb; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.Menu; import android.widget.EditText; public class MainActivity extends Activity { private Connect mConnect; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText editText1 = (EditText) findViewById(R.id.editText1); EditText editText2 = (EditText) findViewById(R.id.editText2); mConnect = new Connect(editText1, editText2); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } Classe Connect package com.example.firstdb; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; public class Connect { public Connect(EditText et1, EditText et2) { try { Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://localhost:5432/firstBD"; String user = "postgres"; String passwd = "000000"; int var ; int var2 =1; Connection conn = DriverManager.getConnection(url, user, passwd); //Création d'un objet Statement Statement state = (Statement) conn.createStatement(); //L'objet ResultSet contient le résul²tat de la requête SQL ResultSet result = ((Statement) state).executeQuery("SELECT * FROM Personne"); //On récupère les MetaData ResultSetMetaData resultMeta = result.getMetaData(); System.out.println("\n**********************************"); //On affiche le nom des colonnes for(int i = 1; i <= resultMeta.getColumnCount(); i++) System.out.print("\t" + resultMeta.getColumnName(i) + "\t *"); System.out.println("\n**********************************"); while(result.next()){ var = result.getInt("id"); if (edittex1 == var2) System.out.println("c'est la méme variable !"); else System.out.println("Oops, c'est pas la méme variable."); } result.close(); state.close(); } catch (Exception e) { e.printStackTrace(); } } } maintenant tu peux utiliser tes EditText dans la classe connect, tu peux récupérer le text contenu par l'EditText en faisant editText1.getText().toString(); Mais l'idéal serait d'instancier Connect dans onCreate de MainActivity, et d'avoir une méthode dans connect qui va lancer un traitement. ce devrait être cette méthode qui recevrai les informations. PS: Majuscule à la première lettre des noms de classe ;) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.