Bonjour à tous,
je viens solliciter un peu votre coup de main sur un projet Android sur lequel je travaille
J'essaye de connecter mon application à la base de données via une page de login et/ou d'enregistrement;
j'ai comme page déjà que je vous donne ci-dessous ;
- RegisterActivirty ;
- MainActivity
- MySingleton
PB :
- en exécutant directement mon fichier de script PHP, tout est parfait et les insertions n'ont aucun problème !!
- voila, une première fois après avoir compiler et tenter de lancer l'application a travers mon émulateur, j'ai reçu un message d'erreur suivant :j'ai fouillé pour essayer de comprendre mon erreur, et je suis tombé sur la solution portant 02 options :com.android.volley.NoConnectionError : java.io.IOException : Context HTTP Taffic to (mon adresse IP) not permitted
- enlever le 's' dans mon http ..... Resultat : plus de messages d'erreure, mais mon activité de login ne bouge pas vers la seconde activité
- dans mon manifest, ajouter la permission <uses-permission android:name="android.permission.INTERNET" /> et android:usesCleartextTraffic="true"> .... Résultat, rien ne se passe, pire le premier message n'apparait même plus jamais !!!
Alors, je suis plus que perdu, quelqun pourrait-il me donner un coup de main pour comprendre mon pb et me permettre d'évoluer sur mon projet ?
RegisterActivity.java
MainActivity.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124 package com.ibth.newspacemembres; import androidx.appcompat.app.AppCompatActivity; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; import com.android.volley.AuthFailureError; import com.android.volley.DefaultRetryPolicy; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.rengwuxian.materialedittext.MaterialEditText; import java.util.HashMap; import java.util.Map; public class RegisterActivity extends AppCompatActivity { MaterialEditText userName, email, password, mobile; RadioGroup radioGroup; Button register; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); userName = findViewById(R.id.username); email = findViewById(R.id.email); password = findViewById(R.id.password); mobile = findViewById(R.id.mobile); radioGroup = findViewById(R.id.radiogp); register = findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String txtUserName = userName.getText().toString(); String txtEmail = email.getText().toString(); String txtPassword = password.getText().toString(); String txtMobile = mobile.getText().toString(); if (TextUtils.isEmpty(txtUserName) || TextUtils.isEmpty(txtEmail) || TextUtils.isEmpty(txtPassword) || TextUtils.isEmpty(txtMobile) ){ Toast.makeText(RegisterActivity.this, "All fields are requires", Toast.LENGTH_SHORT).show(); } else{ int genderId = radioGroup.getCheckedRadioButtonId(); RadioButton selected_Gender = radioGroup.findViewById(genderId); if (selected_Gender == null){ Toast.makeText(RegisterActivity.this, "Selected Gender Please", Toast.LENGTH_SHORT).show(); } else { String selectGender = selected_Gender.getText().toString(); registerNewAccount(txtUserName, txtEmail, txtPassword, txtMobile, selectGender); } } } }); } private void registerNewAccount(String username, String email, String password, String mobile, String gender){ ProgressDialog progressDialog = new ProgressDialog(RegisterActivity.this); progressDialog.setCancelable(false); progressDialog.setIndeterminate(false); progressDialog.setTitle("Resgistering new Account"); String uRl = "http://localhost/loginregister/registration3.php"; StringRequest request = new StringRequest(Request.Method.POST, uRl, new Response.Listener<String>() { @Override public void onResponse(String response) { if (response.equals("successfully registered")){ progressDialog.dismiss(); Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show(); startActivity(new Intent(RegisterActivity.this, MainActivity.class)); finish(); } else { progressDialog.dismiss(); Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { progressDialog.dismiss(); Toast.makeText(RegisterActivity.this, error.toString(), Toast.LENGTH_SHORT).show(); } }){ protected Map<String, String> getParams() throws AuthFailureError{ HashMap<String, String> param = new HashMap<>(); param.put("username", username); param.put("email", email); param.put("psw", password); param.put("mobile", mobile); param.put("gender", gender); return param; } }; request.setRetryPolicy(new DefaultRetryPolicy(30000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT )); MySingleton.getmInstance(RegisterActivity.this).addToRequestQueue(request); } }
MySingleton.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 package com.ibth.newspacemembres; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import com.rengwuxian.materialedittext.MaterialEditText; public class MainActivity extends AppCompatActivity { MaterialEditText email, password; Button login, register; CheckBox loginState; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); login = findViewById(R.id.login); loginState = findViewById(R.id.checkbox); email = findViewById(R.id.email); password = findViewById(R.id.password); register = findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, RegisterActivity.class)); finish(); } }); } }
AndroidManifest.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 package com.ibth.newspacemembres; import android.content.Context; import com.android.volley.Cache; import com.android.volley.Network; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.BasicNetwork; import com.android.volley.toolbox.DiskBasedCache; import com.android.volley.toolbox.HurlStack; import com.android.volley.toolbox.Volley; public class MySingleton { private static MySingleton mInstance; private RequestQueue mRequestQueue; private Context mctx; public MySingleton(Context mctx) { this.mctx = mctx; mRequestQueue = getmRequestQueue(); } public RequestQueue getmRequestQueue(){ if (mRequestQueue == null){ Cache cache = new DiskBasedCache(mctx.getCacheDir(), 1024*1024); Network network = new BasicNetwork(new HurlStack()); mRequestQueue = new RequestQueue(cache, network); mRequestQueue = Volley.newRequestQueue(mctx.getApplicationContext()); } return mRequestQueue; } public static synchronized MySingleton getmInstance(Context context){ if (mInstance == null){ mInstance = new MySingleton(context); } return mInstance; } public <T> void addToRequestQueue(Request<T> request){ mRequestQueue.add(request); } }
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ibth.newspacemembres"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.NewSpaceMembres" android:usesCleartextTraffic="true"> <activity android:name=".AppStartActivity"></activity> <activity android:name=".RegisterActivity" /> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
voila, désoler pour les eventuelles fautes dans mon message .... je suis au bout de 03 jours sans sommeil sur ce probleme !!!
Merci à tous
Partager