2014-01-08 13 views
9

をフラグメントにRegisterFragmentから変換することはできませんが、私のコードで、問題はスイッチのケースで発生し.... plzはタイプ型の不一致:ここ

パッケージcom.example.atg.adapterを助けます。

説明リソースパスの場所タイプ

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 
    } 


    } 

RegisterFragmentクラス

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; 

パブリッククラスRegisterFragmentフラグメント{

/** 
    * 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("")) && (!inputPassword.getText().toString().equals("")) && (!inputFirstName.getText().toString().equals("")) && (!inputLastName.getText().toString().equals("")) && (!inputEmail.getText().toString().equals(""))) 
       { 
        if (inputUsername.getText().toString().length() > 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<String,String,Boolean> 
    { 
     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 && 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<String, String, JSONObject> { 

/** 
* 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; 
     } 

} 

エラーを拡張します

+0

は、あなたのRegisterFragment Fragmentですか? –

+0

でもRegisterFragmentクラスを投稿すると助けになるかもしれません – tyczj

+0

はい私のRegisterFragmentクラスはフラグメントを拡張します – Deepak

答えて

49

問題はRegisterFragmentがandroid.app.Fragmentであることですが、getItem(...)メソッドではandroid.support.v4.app.Fragmentが返されます。 Fragmentをインポートする両方のクラスのインポートステートメントを確認し、アプリケーションのニーズに応じて、標準android.app.Fragmentまたはサポートライブラリandroid.support.v4.app.Fragmentのいずれかをインポートしていることを確認してください。

+1

+1壮大なawesomeness。私の人生の時間はこれを読むことから救われました。 – Joel

+0

完璧です。本当に助けました。どうもありがとう。 –

+0

1時間で私のAndroidスタジオとシステムを再起動しました...ハッハッハ –

8

問題は、アダプタ内部

import android.support.v4.app.Fragment; 

をインポートRegisterFragment

import android.app.Fragment; 

をインポートしているです。

サポートv4を使用している場合は、import android.support.v4.app.Fragment;をRegisterFragmentにインポートしてください。