HiveBrain v1.2.0
Get Started
← Back to all entries
patternjavaMinor

Login activity in Android

Submitted by: @import:stackexchange-codereview··
0
Viewed 0 times
activityloginandroid

Problem

This is a complete login activity class.

What I need reviewed:

  • I need simplify my code as much as possible.



  • Is it wise to use the butterknife library, or is the normal way better?



  • Hide keyboard when user touches out away from edit text, and when selecting "login."



  • Best practise for volley library. Should I use it individual in each class (login, sign up) or I should make a general function in an API class?



```
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.imaadv.leaynik.api.API;
import com.imaadv.leaynik.api.ConnectionExector.HTTPResponse;
import com.imaadv.leaynik.api.ConnectionExector.ResponseType;
import com.imaadv.leaynik.api.ConnectionExector.onHttpRequestListener;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.imaadv.leaynik.api.JsonParsing;
import com.imaadv.leaynik.api.MySingleton;
import com.imaadv.leaynik.defs.AppConstants;
import com.imaadv.leaynik.defs.userdata;
import com.imaadv.leaynik.R;

import java.util.HashMap;
import java.util.Map;

import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnCheckedChanged;
import butterknife.OnClick;

public class LoginActivity extends AppCompatActivity {

private stati

Solution

it would be a better approach if you parse the data received in form of object via different method and you may also put these methods in a seperate class so they can be used for other activities needing the same adapter class

//This method will get data from the web api
    private void getData(){
        //Showing a progress dialog
    final ProgressDialog loading = ProgressDialog.show(this,"Loading Data", "Please wait...",false,false);
Log.i("i m in","getdata()");
        //Creating a json array request
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,Config.DATA_URL,null,
                new Response.Listener() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.i("i m in","respinse()");
                     loading.dismiss();
        Log.d(String.valueOf(response),"response");
                        parseData(response);

                        Log.d(String.valueOf(response),"check it");
                        //calling method to parse json array
                        }},
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
Log.d(String.valueOf(error),"error");
                    }
                });

        //Creating request queue
        RequestQueue requestQueue = Volley.newRequestQueue(this);

        //Adding request to the queue
        requestQueue.add(jsonObjectRequest);
    }
    private void parseData(JSONObject object){

        try {
            JSONObject data=object.getJSONObject("response");

            Log.d(String.valueOf(data),"data in response");
            JSONArray array= data.getJSONArray("docs");
            Log.d(String.valueOf(array.length()),"JSON ARRAY");

            for(int i = 0; i<array.length(); i++)

            {
                JSONObject json = null;
                json = array.getJSONObject(Integer.parseInt(String.valueOf(i)));
                JavaBean superHero=new JavaBean();
               //getter and setter method class                

                    superHero.setTitle(json.getString(TAG_TITLE));
                    // add it to array list finally
                    listSuperHeroes.add(superHero);

            }
             } catch (JSONException e) {e.printStackTrace();}

        //Finally initializing our adapter
        adapter = new CardAdapter(this,listSuperHeroes);

        //Adding adapter to recyclerview
        recyclerView.setAdapter(adapter);

    }

Code Snippets

//This method will get data from the web api
    private void getData(){
        //Showing a progress dialog
    final ProgressDialog loading = ProgressDialog.show(this,"Loading Data", "Please wait...",false,false);
Log.i("i m in","getdata()");
        //Creating a json array request
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,Config.DATA_URL,null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.i("i m in","respinse()");
                     loading.dismiss();
        Log.d(String.valueOf(response),"response");
                        parseData(response);

                        Log.d(String.valueOf(response),"check it");
                        //calling method to parse json array
                        }},
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
Log.d(String.valueOf(error),"error");
                    }
                });


        //Creating request queue
        RequestQueue requestQueue = Volley.newRequestQueue(this);

        //Adding request to the queue
        requestQueue.add(jsonObjectRequest);
    }
    private void parseData(JSONObject object){

        try {
            JSONObject data=object.getJSONObject("response");

            Log.d(String.valueOf(data),"data in response");
            JSONArray array= data.getJSONArray("docs");
            Log.d(String.valueOf(array.length()),"JSON ARRAY");

            for(int i = 0; i<array.length(); i++)

            {
                JSONObject json = null;
                json = array.getJSONObject(Integer.parseInt(String.valueOf(i)));
                JavaBean superHero=new JavaBean();
               //getter and setter method class                

                    superHero.setTitle(json.getString(TAG_TITLE));
                    // add it to array list finally
                    listSuperHeroes.add(superHero);

            }
             } catch (JSONException e) {e.printStackTrace();}

        //Finally initializing our adapter
        adapter = new CardAdapter(this,listSuperHeroes);

        //Adding adapter to recyclerview
        recyclerView.setAdapter(adapter);

    }

Context

StackExchange Code Review Q#106114, answer score: 3

Revisions (0)

No revisions yet.