title: IllegalStateException thrown for my app in Android
body: <p>So my 1st part login is working. There is no problem with it. Now when I try to use the same application for registration it just stopped working. I'm lost here and I'm new in android development, so I don't really understand the error given.</p>
  
  <p><strong>MainActivity.java</strong></p>
  
  <pre><code>   public class MainActivity extends AppCompatActivity {
      EditText UsernameEt, PasswordEt;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          UsernameEt = (EditText) findViewById(R.id.etUserName);
          PasswordEt = (EditText) findViewById(R.id.etPassword);
  
      }
  
      public void OnLogin(View view){
          String username = UsernameEt.getText().toString();
          String password = PasswordEt.getText().toString();
          String type = "login";
  
          BackgroundWorker backgroundWorker = new BackgroundWorker(this);
  
          backgroundWorker.setOnTaskFinishedListener(new BackgroundWorker.OnTaskFinishedListener() {
  
              @Override
              public void onTaskFinished(String result) {
                  // Now you have the result of your login here.
                  // Result should be "admin", "user", or "failed"
                  // You can now create an intent and open the page
                  // to your next activity.
                  switch (result) {
                      case "admin":
                          // Create your intent.
                          Intent adminIntent = new Intent(MainActivity.this, AdminPageActivity.class);
                          // Start the admin page activity.
                          startActivity(adminIntent);
                          break;
  
                      case "user":
                          // Create your intent.
                          Intent userIntent = new Intent(MainActivity.this, UserPageActivity.class);
                          // Start the user page activity.
                          startActivity(userIntent);
                          break;
  
                      default:
                          // Login failed.
                          Intent failIntent  = new Intent(MainActivity.this, MainActivity.class);
                          startActivity(failIntent);
                          break;
                  }
              }
          });
  
          backgroundWorker.execute(type, username, password);
      }
  
      public void openRegistration(View view){
          startActivity(new Intent(this, Registration.class));
      }
  }
  </code></pre>
  
  <p><strong>Registration.java</strong></p>
  
  <pre><code>public class Registration extends AppCompatActivity {
      EditText NameEt, RoleEt, UsernameEt, PasswordEt;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_registration);
  
          NameEt = (EditText) findViewById(R.id.etName);
          UsernameEt = (EditText) findViewById(R.id.etUserName);
          PasswordEt = (EditText) findViewById(R.id.etPassword);
          RoleEt = (EditText) findViewById(R.id.etRole);
      }
  
      public void OnRegister(View view) {
          String str_name = NameEt.getText().toString();
          String str_username = UsernameEt.getText().toString();
          String str_password = PasswordEt.getText().toString();
          String str_role = RoleEt.getText().toString();
          String type = "register";
  
          BackgroundWorker backgroundWorker = new BackgroundWorker(this);
          backgroundWorker.execute(type, str_name, str_username, str_password, str_role);
      }
  
  }
  </code></pre>
  
  <p><strong>BackgroundWorker.java</strong></p>
  
  <pre><code>public class BackgroundWorker extends AsyncTask&lt;String,Void,String&gt; {
      Context context;
      AlertDialog alertDialog;
      BackgroundWorker (Context ctx) {
          context = ctx;
      }
  
      @Override
      protected String doInBackground(String... params) {
          String type = params[0];
          String login_url = "http://ipaddress/folder/login.php";
          String register_url = "http://ipaddress/folder/register.php";
          if(type.equals("login")) {
              try {
                  String user_name = params[1];
                  String password = params[2];
                  URL url = new URL(login_url);
                  HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                  httpURLConnection.setRequestMethod("POST");
                  httpURLConnection.setDoOutput(true);
                  httpURLConnection.setDoInput(true);
                  OutputStream outputStream = httpURLConnection.getOutputStream();
                  BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                  String post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8") +"&amp;" + URLEncoder.encode("password","UTF-8") + "=" + URLEncoder.encode(password,"UTF-8");
                  bufferedWriter.write(post_data);
                  bufferedWriter.flush();
                  bufferedWriter.close();
                  outputStream.close();
                  InputStream inputStream = httpURLConnection.getInputStream();
                  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
                  String result="";
                  String line="";
                  while((line = bufferedReader.readLine())!= null) {
                      result += line;
                  }
                  bufferedReader.close();
                  inputStream.close();
                  httpURLConnection.disconnect();
                  return result;
              } catch (MalformedURLException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          } else if(type.equals("register")) {
              try {
                  String name = params[1];
                  String username = params[2];
                  String password = params[3];
                  String role = params[4];
                  URL url = new URL(register_url);
                  HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                  httpURLConnection.setRequestMethod("POST");
                  httpURLConnection.setDoOutput(true);
                  httpURLConnection.setDoInput(true);
                  OutputStream outputStream = httpURLConnection.getOutputStream();
                  BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                  String post_data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(name,"UTF-8") + "&amp;" + URLEncoder.encode("username", "UTF-8")+"="+URLEncoder.encode(username,"UTF-8") + "&amp;" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password,"UTF-8") + "&amp;" + URLEncoder.encode("role","UTF-8") + "=" + URLEncoder.encode(role,"UTF-8");
                  bufferedWriter.write(post_data);
                  bufferedWriter.flush();
                  bufferedWriter.close();
                  outputStream.close();
                  InputStream inputStream = httpURLConnection.getInputStream();
                  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
                  String result="";
                  String line="";
                  while((line = bufferedReader.readLine())!= null) {
                      result += line;
                  }
                  bufferedReader.close();
                  inputStream.close();
                  httpURLConnection.disconnect();
                  return result;
              } catch (MalformedURLException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          return null;
      }
  
      public interface OnTaskFinishedListener {
          void onTaskFinished(String result);
      }
  
      // Member property to reference listener.
      private OnTaskFinishedListener mOnTaskFinishedListener;
  
      // Setter for listener.
      public void setOnTaskFinishedListener(OnTaskFinishedListener listener) {
          mOnTaskFinishedListener = listener;
      }
  
      @Override
      protected void onPreExecute() {
          alertDialog = new AlertDialog.Builder(context).create();
          alertDialog.setTitle("Login Status");
      }
  
      @Override
      protected void onPostExecute(String result) {
          alertDialog.setMessage(result);
          alertDialog.show();
  
          switch (result) {
              case "failed":
                  // Login failed.
                  break;
              case "user": // Login successful, result (role) is "user"
                  result = "user";
                  break;
              case "admin": // Login successful, result (role) is "admin"
                  result = "admin";
                  break;
          }
  
          if (mOnTaskFinishedListener != null) {
              mOnTaskFinishedListener.onTaskFinished(result);
          }
      }
  
      @Override
      protected void onProgressUpdate(Void... values) {
          super.onProgressUpdate(values);
      }
  }
  </code></pre>
  
  <p>I have just added another <code>if else</code> for registration on <code>backgroundworker.java</code>.</p>
  
  <p><strong>register.php</strong></p>
  
  <pre><code>&lt;?php 
  
  require "conn.php";
  
  $name = $_POST["name"];
  $username = $_POST["username"];
  $password = $_POST["password"];
  $role = $_POST["role"];
  
  
  $mysql_qry = "insert into  employee_data (name, username, password, role)  values ('$name', '$username', '$password', '$role')";
  
  if($conn-&gt;query($mysql_qry) === TRUE){
      echo "success";
  }
  else {
      echo "fail".$mysql_qry."&lt;br&gt;".$conn-&gt;error;
  }
  $conn-&gt;close();
  
  ?&gt;
  </code></pre>
  
  <p>I'm stuck here please help.</p>
  
  <p><strong>error log</strong></p>
  
  <pre><code>Process: com.example.user.mysqldemo, PID: 1325
  java.lang.IllegalStateException: Could not execute method for android:onClick
          at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:275)
          at android.view.View.performClick(View.java:4438)
          at android.view.View$PerformClick.run(View.java:18422)
          at android.os.Handler.handleCallback(Handler.java:733)
          at android.os.Handler.dispatchMessage(Handler.java:95)
          at android.os.Looper.loop(Looper.java:136)
          at android.app.ActivityThread.main(ActivityThread.java:5001)
          at java.lang.reflect.Method.invokeNative(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:515)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
          at dalvik.system.NativeStart.main(Native Method)
  
  Caused by: java.lang.reflect.InvocationTargetException
          at java.lang.reflect.Method.invokeNative(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:515)
          at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
  at android.view.View.performClick(View.java:4438)
  at android.view.View$PerformClick.run(View.java:18422)
  at android.os.Handler.handleCallback(Handler.java:733)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:136)
  at android.app.ActivityThread.main(ActivityThread.java:5001)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:515)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
  at dalvik.system.NativeStart.main(Native Method)
  
  Caused by: java.lang.NullPointerException
          at com.example.user.mysqldemo.Registration.OnRegister(Registration.java:28)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:515)
  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
  at android.view.View.performClick(View.java:4438)
  at android.view.View$PerformClick.run(View.java:18422)
  at android.os.Handler.handleCallback(Handler.java:733)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:136)
  at android.app.ActivityThread.main(ActivityThread.java:5001)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:515)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
  at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>6.Activity_registration.xml</p>
  
  <pre><code>&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:orientation="vertical"
  android:layout_height="match_parent"
  android:layout_width="match_parent"
  android:padding="10dp"&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:text="Name"
      android:layout_height="wrap_content" /&gt;
  
  &lt;EditText
      android:id="@+id/etName"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_marginBottom="10dp"/&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:text="Username"
      android:layout_height="wrap_content" /&gt;
  
  &lt;EditText
      android:id="@+id/etUsername"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_marginBottom="10dp"/&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:text="Password"
      android:layout_height="wrap_content" /&gt;
  
  &lt;EditText
      android:id="@+id/etPassword"
      android:layout_width="match_parent"
      android:inputType="textPassword"
      android:layout_height="wrap_content"
      android:layout_marginBottom="10dp"/&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:text="Role"
      android:layout_height="wrap_content" /&gt;
  
  &lt;EditText
      android:id="@+id/etRole"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_marginBottom="10dp"/&gt;
  
  &lt;Button
      android:id="@+id/bRegister"
      android:text="Register"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:onClick="OnRegister"/&gt;
  </code></pre>
  
  <p></p>