2016-03-30 2 views
3

Я разрабатываю форму для входа, в которой я выполняю сеансы. После выполнения сеанса я получаю следующую ошибку. Не в состоянии понять, почему это происходит.Выполнение сеанса не работает

Login.java файл

package com.example.android.bet; 

import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class Login extends AppCompatActivity { 

private EditText username; 
private EditText password; 
private Button login; 
Context context; 
public static final String MyPREFERENCES = "MyPrefs" ; 
public static final String User = "userKey"; 
public static final String Pass = "passKey"; 
String uid,upass; 
SharedPreferences sharedpreferences; 
SharedPreferences.Editor editor; 
private final static String restURL="XXXXXXXXXX"; 
Message msg = new Message(); 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    context=this; 
    setupVariables(); 

} 

Handler handler = new Handler(new Handler.Callback() { 

    @Override 
    public boolean handleMessage(Message msg) { 
     if(msg.arg1==1) 
     { 
      Toast.makeText(context, "email id or password invalid", Toast.LENGTH_SHORT).show(); 

      //Print Toast or open dialog 
     } 
     return false; 
    } 
}); 

public void authenticateLogin(View view) 
{ 

    new Thread() 
    { 
     public void run() 
     { 

      String apiurl=restURL+"XXXXXXX"+username.getText().toString()+"&Password="+password.getText().toString(); 
      Log.v("URL Generated", apiurl); 
      String betJsonStr=null; 
      try { 

       HttpURLConnection urlConnection = null; 
       BufferedReader reader = null; 

       try { 
        URL url = new URL(apiurl); 

        urlConnection = (HttpURLConnection) url.openConnection(); 
        urlConnection.setRequestMethod("GET"); 
        urlConnection.connect(); 

        InputStream inputStream = urlConnection.getInputStream(); 

        StringBuffer buffer = new StringBuffer(); 

        reader = new BufferedReader(new InputStreamReader(inputStream)); 

        String line; 
        while ((line = reader.readLine()) != null) { 
         buffer.append(line + "\n"); 
        } 
        betJsonStr = buffer.toString(); 
        Log.v("json",betJsonStr); 
       } catch (IOException e) { 
        Log.e("Didn't get data", "Error", e); 
       } 

       try { 
        JSONObject Object = new JSONObject(betJsonStr); 
        int t = Integer.parseInt(Object.optString("Account").toString()); 
        String mt=""+t; 
        Log.v("Value of t",mt); 
        t=1; 
        //just dummy entry as api is not working properly to check whether login is working or not 
        if(t==0) 
        { 
         Log.v("incoming ","yes"); 
         msg.arg1=1; 
         handler.sendMessage(msg); 



        } 
        else 
        { 
         editor = sharedpreferences.edit(); 
         editor.putString(User,uid); 
         editor.putString(Pass,upass); 
         editor.commit(); 
         Intent menu=new Intent(context,MainActivity.class); 
         startActivity(menu); 

        } 



       } 

       catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
      catch (Exception e) { 
       Log.e("Exception arised", "error", e); 
      } 

     } 
    }.start(); 
} 

private void setupVariables() 
{ 


    username=(EditText) findViewById(R.id.username); 
    password=(EditText) findViewById(R.id.password); 
    login=(Button) findViewById(R.id.login); 

    uid=username.getText().toString(); 
    upass=password.getText().toString(); 
} 
} 

activity_login.xml файл

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:weightSum="100" 
tools:context="com.example.android.bet.Login"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="40" 
    android:background="#7ABA3A" 
    android:orientation="vertical"> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="3" 
     android:layout_gravity="center|center_horizontal" 
     android:src="@drawable/account"/> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_gravity="center|center_horizontal" 
     android:layout_weight="1" 
     android:text="LOGO" 
     android:textSize="18sp" 
     android:textColor="#f1f1f1"/> 
</LinearLayout> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="50" 
    android:paddingTop="40dp" 
    android:orientation="vertical"> 


    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textEmailAddress" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="5dp" 
     android:ems="10" 
     android:layout_gravity="center|center_horizontal" 
     android:id="@+id/username" 
     android:hint="Email Id"/> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="10dp" 
     android:ems="10" 
     android:layout_gravity="center|center_horizontal" 
     android:id="@+id/password" 
     android:hint="Password"/> 

    <Button 
     android:background="#7ABA3A" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="LOGIN" 
     android:layout_marginBottom="10dp" 
     android:textColor="#f1f1f1" 
     android:layout_gravity="center|center_horizontal" 
     android:id="@+id/login" 
     android:onClick="authenticateLogin"/> 
</LinearLayout> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="10" 
    android:orientation="vertical"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TradeCoreTech" 
     android:textColor="#7ABA3A" 
     android:layout_gravity="center|center_horizontal"/> 
</LinearLayout> 


</LinearLayout> 

тзд Ошибка

03-30 12:42:22.414 325-20365/? V/URL Generated: XXXXXXXXXXXXX 
03-30 12:42:23.064 325-20365/? V/json: "API data" 
03-30 12:42:23.074 325-20365/? V/Value of t: 0 
03-30 12:42:23.074 325-20365/? E/Exception arised: error 
03-30 12:42:23.074 325-20365/? E/Exception arised: java.lang.NullPointerException 
+0

122 в блоке else – Sahil

+0

ваше сообщение об ошибке нечеткое. Объясните больше, чтобы понять логику и процесс. – Stallion

+0

. Откройте новый вопрос, опишите свою проблему и отправьте мне ссылку на него. – user987339

ответ

2

кажется, что вы не создавали sharedpreferences объект. Вам нужно что-то вроде

sharedpreferences = new SharedPreferences(); 

перед editor = sharedpreferences.edit();

+0

инициализируется после объявления класса (глобальная переменная) – Sahil

+0

Вы только что определили его, но не создали объект, прежде чем ссылаться на него в редакторе = sharedpreferences.edit(); – user987339

+0

thanx много приятель это сработало ... (Y) – Sahil

1

Как вы можете видеть ваш Журнал ошибок вы найдете что-то:

03-30 12:42:23.074 325-20365/? E/Exception arised: error 
03-30 12:42:23.074 325-20365/? E/Exception arised: java.lang.NullPointerException 

Это означает, что Там должны быть некоторые ошибки инициализации с кодом. Просмотрев каждую строку вашего кода. Я обнаружил, что вы объявили

SharedPreferences sharedpreferences; //declared but not Initialized.

Вы должны инициализировать эту переменную sharedpreferences перед его использованием.

sharedpreferences = new SharedPreferences(); 
//You may pass argument as per this class Constructors as per your need. 

Это может решить вашу проблему. Я думаю.

+0

thanx приятель получил это ... :) – Sahil

Смежные вопросы