title: Type Type mismatch: cannot convert from RegisterFragment to Fragment
body: <p>Here is my Code and The problem occurs in Switch Case....plz help  </p>
  
  <p>package com.example.atg.adapter;</p>
  
  <pre><code>import com.example.atg.LoginFragment;
  import com.example.atg.RegisterFragment;
  import android.support.v4.app.Fragment;
  import android.support.v4.app.FragmentManager;
  import android.support.v4.app.FragmentStatePagerAdapter;
  
  public class TabsPagerAdapter extends FragmentStatePagerAdapter {
      public TabsPagerAdapter(FragmentManager fm) {
          super(fm);
          // TODO Auto-generated constructor stub
      }
  
      @Override
      public Fragment getItem(int i) {
          switch (i) {
          case 0:
              //Fragement for Android Tab
              return new LoginFragment();
          case 1:
             //Fragment for Ios Tab
              return new RegisterFragment();
          }
          return null;
  
      }
  
      @Override
      public int getCount() {
          // TODO Auto-generated method stub
          return 2; //No of Tabs
      }
  
  
      }
  </code></pre>
  
  <p>RegisterFragment class</p>
  
  <pre><code>   package com.example.atg;
      import android.app.Activity;
      import android.app.Fragment;
      import android.app.ProgressDialog;
      import android.content.Context;
      import android.content.Intent;
      import android.net.ConnectivityManager;
      import android.net.NetworkInfo;
      import android.os.AsyncTask;
      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 com.example.atg.library.DatabaseHandler;
      import com.example.atg.library.UserFunctions;
      import org.json.JSONException;
      import org.json.JSONObject;
      import java.io.IOException;
      import java.net.HttpURLConnection;
      import java.net.MalformedURLException;
      import java.net.URL;
  </code></pre>
  
  <p>public class RegisterFragment extends Fragment {</p>
  
  <pre><code>    /**
       *  JSON Response node names.
       **/
  
  
      private static String KEY_SUCCESS = "success";
      private static String KEY_UID = "uid";
      private static String KEY_FIRSTNAME = "fname";
      private static String KEY_LASTNAME = "lname";
      private static String KEY_USERNAME = "uname";
      private static String KEY_EMAIL = "email";
      private static String KEY_CREATED_AT = "created_at";
      private static String KEY_ERROR = "error";
  
      /**
       * Defining layout items.
       **/
  
      EditText inputFirstName;
      EditText inputLastName;
      EditText inputUsername;
      EditText inputEmail;
      EditText inputPassword;
      Button btnRegister;
      TextView registerErrorMsg;
  
  
      /**
       * Called when the activity is first created.
       */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
         setContentView(R.layout.register);
  
      /**
       * Defining all layout items
       **/
          inputFirstName = (EditText) findViewById1(R.id.fname);
          inputLastName = (EditText) findViewById1(R.id.lname);
          inputUsername = (EditText) findViewById1(R.id.uname);
          inputEmail = (EditText) findViewById1(R.id.email);
          inputPassword = (EditText) findViewById1(R.id.pword);
          btnRegister = (Button) findViewById(R.id.register);
          registerErrorMsg = (TextView) findViewById(R.id.register_error);
  
  
  
  /**
   * Button which Switches back to the login screen on clicked
   **/
  
          Button login = (Button) findViewById(R.id.bktologin);
  
          login.setOnClickListener(new View.OnClickListener() {
              public void onClick(View view) {
                  Intent myIntent = new Intent(view.getContext(), Login.class);
                  startActivityForResult(myIntent, 0);
              }
  
  
  
          });
  
          /**
           * Register Button click event.
           * A Toast is set to alert when the fields are empty.
           * Another toast is set to alert Username must be 5 characters.
           **/
  
          btnRegister.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
  
                  if (  ( !inputUsername.getText().toString().equals("")) &amp;&amp; ( !inputPassword.getText().toString().equals("")) &amp;&amp; ( !inputFirstName.getText().toString().equals("")) &amp;&amp; ( !inputLastName.getText().toString().equals("")) &amp;&amp; ( !inputEmail.getText().toString().equals("")) )
                  {
                      if ( inputUsername.getText().toString().length() &gt; 4 ){
                      NetAsync(view);
  
                      }
                      else
                      {
                          Toast.makeText(getApplicationContext(),
                                  "Username should be minimum 5 characters", Toast.LENGTH_SHORT).show();
                      }
                  }
                  else
                  {
                      Toast.makeText(getApplicationContext(),
                              "One or more fields are empty", Toast.LENGTH_SHORT).show();
                  }
              }
          });
         }
      protected Context getApplicationContext() {
          // TODO Auto-generated method stub
          return null;
      }
      private EditText findViewById1(int fname) {
          // TODO Auto-generated method stub
          return null;
      }
  
      private Button findViewById(int register){
          return null;
      }
      private void setContentView(int register) {
          // TODO Auto-generated method stub
  
      }
      /**
       * Async Task to check whether internet connection is working
       **/
  
      private class NetCheck extends AsyncTask&lt;String,String,Boolean&gt;
      {
          private ProgressDialog nDialog;
  
          @Override
          protected void onPreExecute(){
              super.onPreExecute();
  
              nDialog.setMessage("Loading..");
              nDialog.setTitle("Checking Network");
              nDialog.setIndeterminate(false);
              nDialog.setCancelable(true);
              nDialog.show();
          }
  
          @Override
          protected Boolean doInBackground(String... args){
  
  
  /**
   * Gets current device state and checks for working internet connection by trying Google.
   **/
              ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
              NetworkInfo netInfo = cm.getActiveNetworkInfo();
              if (netInfo != null &amp;&amp; netInfo.isConnected()) {
                  try {
                      URL url = new URL("http://www.google.com");
                      HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
                      urlc.setConnectTimeout(3000);
                      urlc.connect();
                      if (urlc.getResponseCode() == 200) {
                          return true;
                      }
                  } catch (MalformedURLException e1) {
                      // TODO Auto-generated catch block
                      e1.printStackTrace();
                  } catch (IOException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
              }
              return false;
  
          }
          @Override
          protected void onPostExecute(Boolean th){
  
              if(th == true){
                  nDialog.dismiss();
                  new ProcessRegister().execute();
              }
              else{
                  nDialog.dismiss();
                  registerErrorMsg.setText("Error in Network Connection");
              }
          }
      }
  
  
  
  
  
      private class ProcessRegister extends AsyncTask&lt;String, String, JSONObject&gt; {
  
  /**
   * Defining Process dialog
   **/
          private ProgressDialog pDialog;
  
          String email,password,fname,lname,uname;
          @Override
          protected void onPreExecute() {
              super.onPreExecute();
              inputUsername = (EditText) findViewById1(R.id.uname);
              inputPassword = (EditText) findViewById1(R.id.pword);
                 fname = inputFirstName.getText().toString();
                 lname = inputLastName.getText().toString();
                  email = inputEmail.getText().toString();
                  uname= inputUsername.getText().toString();
                  password = inputPassword.getText().toString();
  
              pDialog.setTitle("Contacting Servers");
              pDialog.setMessage("Registering ...");
              pDialog.setIndeterminate(false);
              pDialog.setCancelable(true);
              pDialog.show();
          }
  
          @Override
          protected JSONObject doInBackground(String... args) {
  
  
          UserFunctions userFunction = new UserFunctions();
          JSONObject json = userFunction.registerUser(fname, lname, email, uname, password);
  
              return json;
  
  
          }
         @Override
          protected void onPostExecute(JSONObject json) {
         /**
          * Checks for success message.
          **/
                  try {
                      if (json.getString(KEY_SUCCESS) != null) {
                          registerErrorMsg.setText("");
                          String res = json.getString(KEY_SUCCESS);
  
                          String red = json.getString(KEY_ERROR);
  
                          if(Integer.parseInt(res) == 1){
                              pDialog.setTitle("Getting Data");
                              pDialog.setMessage("Loading Info");
  
                              registerErrorMsg.setText("Successfully Registered");
  
  
                              DatabaseHandler db = new DatabaseHandler(getApplicationContext());
                              JSONObject json_user = json.getJSONObject("user");
  
                              /**
                               * Removes all the previous data in the SQlite database
                               **/
  
                              UserFunctions logout = new UserFunctions();
                              logout.logoutUser(getApplicationContext());
                              db.addUser(json_user.getString(KEY_FIRSTNAME),json_user.getString(KEY_LASTNAME),json_user.getString(KEY_EMAIL),json_user.getString(KEY_USERNAME),json_user.getString(KEY_UID),json_user.getString(KEY_CREATED_AT));
                              /**
                               * Stores registered data in SQlite Database
                               * Launch Registered screen
                               **/
  
                              Intent registered = new Intent(getApplicationContext(), Registered.class);
  
                              /**
                               * Close all views before launching Registered screen
                              **/
                              registered.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                              pDialog.dismiss();
                              startActivity(registered);
  
  
                                finish();
                          }
  
                          else if (Integer.parseInt(red) ==2){
                              pDialog.dismiss();
                              registerErrorMsg.setText("User already exists");
                          }
                          else if (Integer.parseInt(red) ==3){
                              pDialog.dismiss();
                              registerErrorMsg.setText("Invalid Email id");
                          }
  
                      }
  
  
                          else{
                          pDialog.dismiss();
  
                              registerErrorMsg.setText("Error occured in registration");
                          }
  
                  } catch (JSONException e) {
                      e.printStackTrace();
  
  
                  }
              }}
          public void NetAsync(View view){
              new NetCheck().execute();
          }
          public void finish() {
              // TODO Auto-generated method stub
  
          }
          public ConnectivityManager getSystemService(String connectivityService) {
              // TODO Auto-generated method stub
              return null;
          }
  
  }
  </code></pre>
  
  <p>Errors:     </p>
  
  <p>Description Resource    Path    Location    Type</p>
  
  <pre><code>            Type mismatch: cannot convert from LoginFragment to Fragment    TabsPagerAdapter.java   /ATG/src/com/example/atg/adapter    line 20 Java Problem
              Type mismatch: cannot convert from RegisterFragment to Fragment TabsPagerAdapter.java   /ATG/src/com/example/atg/adapter    line 23 Java Problem
  </code></pre>