检查用户是否登录

时间:2016-03-24 07:03:36

标签: android

我正在android中开发一个应用程序,我有一个带有用户图标的工具栏。如果用户未登录,则图标为红色,并显示用户应首先登录的对话框。用户登录后,用户图标变为绿色,并打开主页片段。我正在使用的数据库是领域。任何人都可以帮助我。

public class MainActivity extends FragmentActivity{

    private static String TAG = MainActivity.class.getSimpleName();

    private Toolbar mToolbar;
    private DrawerLayout mDrawer;
    ImageView imglogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_main);

        ButterKnife.bind(this);


        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        //setSupportActionBar(toolbar);

        ImageView icon = (ImageView)findViewById(R.id.toolbar_logo);

        icon.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "Toolbar icon selected", Toast.LENGTH_LONG).show();

            }
        });

        ImageView imglogin = (ImageView) findViewById(R.id.imagelogin);



        // Find our drawer view
        mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);

        ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawer, toolbar, R.string.drawer_open, R.string.drawer_close) {

            @Override
            public void onDrawerClosed(View drawerView) {
                // Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank
                super.onDrawerClosed(drawerView);
            }

            @Override
            public void onDrawerOpened(View drawerView) {
                // Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank
                super.onDrawerOpened(drawerView);
            }
        };

        //Setting the actionbarToggle to drawer layout
        mDrawer.setDrawerListener(actionBarDrawerToggle);

        //calling sync state is necessary or else your hamburger icon wont show up
        actionBarDrawerToggle.syncState();
    }





    @OnClick({R.id.offers,R.id.chat,R.id.map,R.id.profile,R.id.settings,R.id.shops})
    public void submit(View view){

        switch (view.getId()){
            case R.id.chat:
               goToFragment(FragmentChat.class, view);
              break;

            case R.id.shops:
              goToFragment(ShopsFragment.class, view);
               break;

            case R.id.map:
                goToFragment(MapsFragment.class, view);
               break;

            case R.id.offers:
                goToFragment(OffersFragment.class, view);
                break;

            case R.id.profile:
                goToFragment(ProfileFragment.class, view);
               break;

           case R.id.settings:
                goToFragment(SettingsFragment.class, view);
              break;

        }

       mDrawer.closeDrawers();
   }


    public void goToFragment(Class fragmentClass, View view){

        setTitle(view.getContentDescription());

        Fragment fragment = null;
        try {
            fragment = (Fragment) fragmentClass.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Insert the fragment by replacing any existing fragment
        FragmentManager fragmentManager = getSupportFragmentManager();

        fragmentManager.beginTransaction().replace(R.id.container_body, fragment).commit();
    }
}

登录代码

public class LoginFragment extends Fragment {

    private static final String TAG = "Login";

    TextView textsignup;
    TextView txtlogin;
    EditText Editemail;
    EditText EditPassword;
    private Realm realm;
    private MyRealmObject myRealmObject;

    public LoginFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        View view = inflater.inflate(R.layout.fragment_login, container, false);


        TextView textsignup = (TextView) view.findViewById(R.id.txtcreate);
        TextView txtlogin = (TextView) view.findViewById(R.id.txtlogin);
        Editemail = (EditText) view.findViewById(R.id.edtemail);
        EditPassword = (EditText) view.findViewById(R.id.edtpswrd);

        textsignup.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stubrelativeregister
                getFragmentManager()
                        .beginTransaction()
                        .replace(R.id.relativelogin, new RegisterFragment())
                        .commit();
            }
        });


        try {
            realm = Realm.getInstance(getActivity());
        } catch (Exception e) {
            e.printStackTrace();
        }

        txtlogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (Editemail.length() == 0) {
                    showSnackBar("Enter Email");
                    Editemail.requestFocus();
                } else if (EditPassword.length() == 0) {
                    showSnackBar("Enter Password");
                    EditPassword.requestFocus();
                } else {
                    try {
                        realm.beginTransaction();
                        myRealmObject = realm.createObject(MyRealmObject.class);
                        myRealmObject.setEmail(Editemail.getText().toString());
                        myRealmObject.setPassword(EditPassword.getText().toString());
                        realm.commitTransaction();

                        showSnackBar("Incorrect Username or Password");
                        Editemail.requestFocus();

                    } catch (RealmPrimaryKeyConstraintException e) {
                        e.printStackTrace();
                        showSnackBar("Successful login");

                    }
                }
            }
        });

        return view;
    }

    private void showSnackBar(String msg) {
        try {
            Snackbar.make(getActivity().findViewById(R.id.relativelogin), msg, Snackbar.LENGTH_SHORT).show();
        } catch (NullPointerException e) {
            e.printStackTrace();
            Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show();
        }
    }

    private boolean checkUser(String Email, String Password) {
        RealmResults<MyRealmObject> realmObjects = realm.where(MyRealmObject.class).findAll();
        for (MyRealmObject myRealmObject : realmObjects) {
            if (Email.equals(myRealmObject.getEmail()) && Password.equals(myRealmObject.getPassword())) {
                showSnackBar("Successful new login");

                return true;
            }
        }

        Log.e(TAG, String.valueOf(realm.where(MyRealmObject.class).contains("Email", Email)));
        return false;
    }

}

提前致谢。 :)

0 个答案:

没有答案