Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.61 KB | None | 0 0
  1. package com.example.hnnhm.myapplication_new;
  2.  
  3. import android.app.Activity;
  4. import android.app.ProgressDialog;
  5. import android.content.Intent;
  6. import android.net.Uri;
  7. import android.os.Bundle;
  8. import android.util.Log;
  9. import android.view.View;
  10. import android.widget.Button;
  11. import android.widget.EditText;
  12. import android.widget.Toast;
  13.  
  14. import com.android.volley.Request;
  15. import com.android.volley.Response;
  16. import com.android.volley.VolleyError;
  17. import com.android.volley.toolbox.StringRequest;
  18. import com.google.android.gms.appindexing.Action;
  19. import com.google.android.gms.appindexing.AppIndex;
  20. import com.google.android.gms.appindexing.Thing;
  21. import com.google.android.gms.common.api.GoogleApiClient;
  22.  
  23. import org.json.JSONException;
  24. import org.json.JSONObject;
  25.  
  26. import java.util.HashMap;
  27. import java.util.Map;
  28.  
  29. public class SignupActivity extends Activity {
  30. private static final String TAG = SignupActivity.class.getSimpleName();
  31. private Button btnRegister;
  32. private Button btnLinkToLogin;
  33. private EditText inputFullName;
  34. private EditText inputEmail;
  35. private EditText inputAge;
  36. private EditText inputWeight;
  37. private EditText inputExtra;
  38. private EditText inputPassword;
  39. private ProgressDialog pDialog;
  40. private SessionManager session;
  41. private SQLiteHandler db;
  42. /**
  43. * ATTENTION: This was auto-generated to implement the App Indexing API.
  44. * See https://g.co/AppIndexing/AndroidStudio for more information.
  45. */
  46. private GoogleApiClient client;
  47.  
  48. @Override
  49. public void onCreate(Bundle savedInstanceState) {
  50. super.onCreate(savedInstanceState);
  51. setContentView(R.layout.activity_signup);
  52.  
  53. inputFullName = (EditText) findViewById(R.id.editText);
  54. inputEmail = (EditText) findViewById(R.id.email);
  55. inputAge = (EditText) findViewById(R.id.editText2);
  56. inputEmail = (EditText) findViewById(R.id.editText3);
  57. inputExtra = (EditText) findViewById(R.id.editText6);
  58. inputPassword = (EditText) findViewById(R.id.password);
  59. btnRegister = (Button) findViewById(R.id.button);
  60. btnLinkToLogin = (Button) findViewById(R.id.button2);
  61.  
  62. // Progress dialog
  63. pDialog = new ProgressDialog(this);
  64. pDialog.setCancelable(false);
  65.  
  66. // Session manager
  67. session = new SessionManager(getApplicationContext());
  68.  
  69. // SQLite database handler
  70. db = new SQLiteHandler(getApplicationContext());
  71.  
  72. // Check if user is already logged in or not
  73. if (session.isLoggedIn()) {
  74. // User is already logged in. Take him to main activity
  75. Intent intent = new Intent(SignupActivity.this,
  76. LoginActivity.class);
  77. startActivity(intent);
  78. finish();
  79. }
  80.  
  81. // Register Button Click event
  82. btnRegister.setOnClickListener(new View.OnClickListener() {
  83. public void onClick(View view) {
  84. String name = inputFullName.getText().toString().trim();
  85. String email = inputEmail.getText().toString().trim();
  86. String password = inputPassword.getText().toString().trim();
  87. String Age = inputAge.getText().toString().trim();
  88. String weight = inputWeight.getText().toString().trim();
  89. String Extra = inputExtra.getText().toString().trim();
  90.  
  91. if (!name.isEmpty() && !email.isEmpty() && !password.isEmpty() && !Age.isEmpty()&& !weight.isEmpty()&& !Extra.isEmpty()) {
  92. registerUser(name, email, password, Age , weight , Extra);
  93. } else {
  94. Toast.makeText(getApplicationContext(),
  95. "Please enter your details!", Toast.LENGTH_LONG)
  96. .show();
  97. }
  98. }
  99. });
  100.  
  101. // Link to Login Screen
  102. btnLinkToLogin.setOnClickListener(new View.OnClickListener() {
  103.  
  104. public void onClick(View view) {
  105. Intent i = new Intent(getApplicationContext(),
  106. LoginActivity.class);
  107. startActivity(i);
  108. finish();
  109. }
  110. });
  111.  
  112. // ATTENTION: This was auto-generated to implement the App Indexing API.
  113. // See https://g.co/AppIndexing/AndroidStudio for more information.
  114. client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
  115. }
  116.  
  117. /**
  118. * Function to store user in MySQL database will post params(tag, name,
  119. * email, password) to register url
  120. */
  121. private void registerUser(final String name, final String email,
  122. final String password, final String Age, final String weight, final String Extra) {
  123. // Tag used to cancel the request
  124. String tag_string_req = "req_register";
  125.  
  126. pDialog.setMessage("Registering ...");
  127. showDialog();
  128.  
  129. StringRequest strReq = new StringRequest(Request.Method.POST,
  130. AppConfig.URL_REGISTER, new Response.Listener<String>() {
  131.  
  132. @Override
  133. public void onResponse(String response) {
  134. Log.d(TAG, "Register Response: " + response.toString());
  135. hideDialog();
  136.  
  137. try {
  138. JSONObject jObj = new JSONObject(response);
  139. boolean error = jObj.getBoolean("error");
  140. if (!error) {
  141. // User successfully stored in MySQL
  142. // Now store the user in sqlite
  143. String uid = jObj.getString("uid");
  144.  
  145. JSONObject user = jObj.getJSONObject("user");
  146. String name = user.getString("name");
  147. String email = user.getString("email");
  148. String created_at = user
  149. .getString("created_at");
  150.  
  151. // Inserting row in users table
  152. db.addUser(name, email, uid, Age, weight,Extra);
  153.  
  154. Toast.makeText(getApplicationContext(), "User successfully registered. Try login now!", Toast.LENGTH_LONG).show();
  155.  
  156. // Launch login activity
  157. Intent intent = new Intent(
  158. SignupActivity.this,
  159. LoginActivity.class);
  160. startActivity(intent);
  161. finish();
  162. } else {
  163.  
  164. // Error occurred in registration. Get the error
  165. // message
  166. String errorMsg = jObj.getString("error_msg");
  167. Toast.makeText(getApplicationContext(),
  168. errorMsg, Toast.LENGTH_LONG).show();
  169. }
  170. } catch (JSONException e) {
  171. e.printStackTrace();
  172. }
  173.  
  174. }
  175. }, new Response.ErrorListener() {
  176.  
  177. @Override
  178. public void onErrorResponse(VolleyError error) {
  179. Log.e(TAG, "Registration Error: " + error.getMessage());
  180. Toast.makeText(getApplicationContext(),
  181. error.getMessage(), Toast.LENGTH_LONG).show();
  182. hideDialog();
  183. }
  184. }) {
  185.  
  186. @Override
  187. protected Map<String, String> getParams() {
  188. // Posting params to register url
  189. Map<String, String> params = new HashMap<String, String>();
  190. params.put("name", name);
  191. params.put("email", email);
  192. params.put("password", password);
  193.  
  194. return params;
  195. }
  196.  
  197. };
  198.  
  199. // Adding request to request queue
  200. AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
  201. }
  202.  
  203. private void showDialog() {
  204. if (!pDialog.isShowing())
  205. pDialog.show();
  206. }
  207.  
  208. private void hideDialog() {
  209. if (pDialog.isShowing())
  210. pDialog.dismiss();
  211. }
  212.  
  213. /**
  214. * ATTENTION: This was auto-generated to implement the App Indexing API.
  215. * See https://g.co/AppIndexing/AndroidStudio for more information.
  216. */
  217. public Action getIndexApiAction() {
  218. Thing object = new Thing.Builder()
  219. .setName("Register Page") // TODO: Define a title for the content shown.
  220. // TODO: Make sure this auto-generated URL is correct.
  221. .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
  222. .build();
  223. return new Action.Builder(Action.TYPE_VIEW)
  224. .setObject(object)
  225. .setActionStatus(Action.STATUS_TYPE_COMPLETED)
  226. .build();
  227. }
  228.  
  229. @Override
  230. public void onStart() {
  231. super.onStart();
  232.  
  233. // ATTENTION: This was auto-generated to implement the App Indexing API.
  234. // See https://g.co/AppIndexing/AndroidStudio for more information.
  235. client.connect();
  236. AppIndex.AppIndexApi.start(client, getIndexApiAction());
  237. }
  238.  
  239. @Override
  240. public void onStop() {
  241. super.onStop();
  242.  
  243. // ATTENTION: This was auto-generated to implement the App Indexing API.
  244. // See https://g.co/AppIndexing/AndroidStudio for more information.
  245. AppIndex.AppIndexApi.end(client, getIndexApiAction());
  246. client.disconnect();
  247. }
  248. }
  249.  
  250. <?xml version="1.0" encoding="utf-8"?>
  251. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  252. xmlns:tools="http://schemas.android.com/tools"
  253. android:id="@+id/activity_signup"
  254. android:layout_width="match_parent"
  255. android:layout_height="match_parent"
  256. android:paddingBottom="@dimen/activity_vertical_margin"
  257. android:paddingLeft="@dimen/activity_horizontal_margin"
  258. android:paddingRight="@dimen/activity_horizontal_margin"
  259. android:paddingTop="@dimen/activity_vertical_margin"
  260. tools:context="com.example.hnnhm.myapplication_new.SignupActivity">
  261.  
  262. <TextView
  263. android:text="Name:"
  264. android:layout_width="wrap_content"
  265. android:layout_height="wrap_content"
  266. android:layout_alignParentTop="true"
  267. android:id="@+id/textView3"
  268. android:textSize="18sp"
  269. android:textStyle="normal|bold"
  270. android:textColor="@color/common_google_signin_btn_text_dark_focused"
  271. android:layout_alignParentStart="true" />
  272.  
  273. <TextView
  274. android:text="Age:"
  275. android:layout_width="wrap_content"
  276. android:layout_height="wrap_content"
  277. android:id="@+id/textView4"
  278. android:layout_below="@+id/editText"
  279. android:layout_alignParentStart="true"
  280. android:textStyle="normal|bold"
  281. android:textSize="18sp"
  282. android:textColor="@color/common_google_signin_btn_text_dark_focused" />
  283.  
  284. <TextView
  285. android:text="Email:"
  286. android:layout_width="wrap_content"
  287. android:layout_height="wrap_content"
  288. android:layout_below="@+id/editText2"
  289. android:layout_alignParentStart="true"
  290. android:id="@+id/textView5"
  291. android:textStyle="normal|bold"
  292. android:textColor="@color/common_google_signin_btn_text_dark_focused"
  293. android:textSize="18sp" />
  294.  
  295. <EditText
  296. android:layout_width="wrap_content"
  297. android:layout_height="wrap_content"
  298. android:inputType="textEmailAddress"
  299. android:ems="10"
  300. android:layout_below="@+id/textView5"
  301. android:layout_alignEnd="@+id/editText2"
  302. android:id="@+id/editText4"
  303. android:text="Your Email"
  304. android:textColor="@color/common_plus_signin_btn_text_dark_disabled" />
  305.  
  306. <TextView
  307. android:text="Password:"
  308. android:layout_width="wrap_content"
  309. android:layout_height="wrap_content"
  310. android:id="@+id/textView6"
  311. android:textStyle="normal|bold"
  312. android:textColor="@color/common_google_signin_btn_text_dark_focused"
  313. android:textSize="18sp"
  314. android:layout_below="@+id/editText4"
  315. android:layout_alignParentStart="true" />
  316.  
  317. <EditText
  318. android:layout_width="wrap_content"
  319. android:layout_height="wrap_content"
  320. android:inputType="textPassword"
  321. android:ems="10"
  322. android:layout_below="@+id/textView6"
  323. android:layout_alignParentStart="true"
  324. android:id="@+id/editText5"
  325. android:text="Password"
  326. android:textColor="@color/common_plus_signin_btn_text_dark_disabled" />
  327.  
  328. <EditText
  329. android:layout_width="wrap_content"
  330. android:layout_height="wrap_content"
  331. android:inputType="number"
  332. android:ems="10"
  333. android:id="@+id/editText2"
  334. android:textSize="18sp"
  335. android:text="Your age"
  336. android:textColor="@color/common_plus_signin_btn_text_dark_disabled"
  337. android:layout_below="@+id/textView4"
  338. android:layout_alignParentStart="true" />
  339.  
  340. <EditText
  341. android:layout_width="wrap_content"
  342. android:layout_height="wrap_content"
  343. android:inputType="textPersonName"
  344. android:text="Your name"
  345. android:ems="10"
  346. android:id="@+id/editText"
  347. android:textSize="18sp"
  348. android:textColor="@color/common_plus_signin_btn_text_dark_disabled"
  349. android:layout_below="@+id/textView3"
  350. android:layout_alignParentStart="true" />
  351.  
  352. <TextView
  353. android:text="Weight:"
  354. android:layout_width="wrap_content"
  355. android:layout_height="wrap_content"
  356. android:id="@+id/textView9"
  357. android:textSize="18sp"
  358. android:textColor="@color/common_google_signin_btn_text_dark_focused"
  359. android:textStyle="normal|bold"
  360. android:layout_below="@+id/editText5"
  361. android:layout_alignParentStart="true" />
  362.  
  363. <Button
  364. android:text="Login"
  365. android:layout_width="wrap_content"
  366. android:layout_height="wrap_content"
  367. android:id="@+id/button2"
  368. android:layout_alignParentBottom="true"
  369. android:layout_alignParentEnd="true"
  370. android:layout_marginEnd="20dp" />
  371.  
  372. <TextView
  373. android:text="already a member?"
  374. android:layout_width="wrap_content"
  375. android:layout_height="wrap_content"
  376. android:id="@+id/textView8"
  377. android:textAlignment="textStart"
  378. android:textStyle="normal|bold"
  379. android:layout_alignParentBottom="true"
  380. android:layout_toStartOf="@+id/button2" />
  381.  
  382. <Button
  383. android:text="Signup"
  384. android:layout_width="wrap_content"
  385. android:layout_height="wrap_content"
  386. android:id="@+id/button"
  387. android:layout_marginStart="11dp"
  388. android:layout_alignParentBottom="true"
  389. android:layout_alignParentStart="true" />
  390.  
  391. <EditText
  392. android:layout_width="wrap_content"
  393. android:layout_height="wrap_content"
  394. android:inputType="textPersonName"
  395. android:text="Your weight"
  396. android:ems="10"
  397. android:layout_below="@+id/textView9"
  398. android:layout_alignParentStart="true"
  399. android:id="@+id/editText3"
  400. android:textColor="@color/common_plus_signin_btn_text_dark_disabled" />
  401.  
  402. <TextView
  403. android:text="allergies and diseases:"
  404. android:layout_width="wrap_content"
  405. android:layout_height="wrap_content"
  406. android:id="@+id/textView7"
  407. android:textStyle="normal|bold"
  408. android:textSize="18sp"
  409. android:textColor="@color/common_google_signin_btn_text_dark_focused"
  410. android:layout_below="@+id/editText3"
  411. android:layout_alignParentStart="true" />
  412.  
  413. <EditText
  414. android:layout_width="wrap_content"
  415. android:layout_height="wrap_content"
  416. android:inputType="textPersonName"
  417. android:text="and allergies or chronic disease you have"
  418. android:ems="10"
  419. android:id="@+id/editText6"
  420. android:textSize="18sp"
  421. android:textColor="@color/common_plus_signin_btn_text_dark_disabled"
  422. android:layout_below="@+id/textView7"
  423. android:layout_alignParentStart="true" />
  424.  
  425. </RelativeLayout>
  426.  
  427. E/AndroidRuntime: FATAL EXCEPTION: main
  428. Process: com.example.hnnhm.myapplication_new, PID: 4329
  429. java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
  430. at com.example.hnnhm.myapplication_new.SignupActivity$1.onClick(SignupActivity.java:86)
  431. at android.view.View.performClick(View.java:5637)
  432. at android.view.View$PerformClick.run(View.java:22429)
  433. at android.os.Handler.handleCallback(Handler.java:751)
  434. at android.os.Handler.dispatchMessage(Handler.java:95)
  435. at android.os.Looper.loop(Looper.java:154)
  436. at android.app.ActivityThread.main(ActivityThread.java:6119)
  437. at java.lang.reflect.Method.invoke(Native Method)
  438. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
  439. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
  440. Disconnected from the target VM, address: 'localhost:8605', transport: 'socket'
  441.  
  442. String name = inputFullName.getText().toString().trim();
  443. String email = inputEmail.getText().toString().trim();
  444. String password = inputPassword.getText().toString().trim();
  445. String Age = inputAge.getText().toString().trim();
  446. String weight = inputWeight.getText().toString().trim();
  447. String Extra = inputExtra.getText().toString().trim();
  448.  
  449. String name = inputFullName.getText().toString();
  450. String email = inputEmail.getText().toString();
  451. String password = inputPassword.getText().toString();
  452. String Age = inputAge.getText().toString();
  453. String weight = inputWeight.getText().toString();
  454. String Extra = inputExtra.getText().toString();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement