2017-09-09 10 views
0

をポップアップが表示されません検証の可能性はありますが、AsyncTaskに行くとパラメータにマッチしますが、何も投稿しません。そこで、AlertDialogを追加して、結果をパラメータと一致させる必要があります.json文字列も取得する必要があります。 onpostExecuteメソッドまたはdoinbackground.Iの新しいアンドロイドplsヘルプです。AsyncTaskは、私がログイン のための活動をするために を試してみましたが、私はAsyncTaskを使用していたが、私はそれがいずれかが問題password.Iについてポップアップ表示を示しdoes notの 間違った資格で を試してみてください をして試してみました際に、間違った資格のため

public class FetchTask extends AsyncTask<String, Void, String> { 
    protected void onPostExecute(String result) 
    { 
     Emp emp=new Emp(); 
     if(result==null && !(result.equals("0"))) 
     { 
      alert.showAlertDialog(MainActivity.this, "Login failed..", "Wrong credential please enter again", false); 

      // Toast.makeText(getApplicationContext(), "Wrong credentials Please enter again", Toast.LENGTH_SHORT).show(); 
     } 
     List<Emp> data=new ArrayList<>(); 
     try { 
     // JSONArray jArray = new JSONArray(result); 
      // for(int i=0;i<jArray.length();i++) { 
       JSONObject json_data = new JSONObject(result); 
       emp.validstatus=json_data.getInt("validstatus"); 
       emp.roleid=json_data.getInt("roleid"); 
       emp.empid=json_data.getString("empid"); 
       data.add(emp); 
       if (emp.validstatus==1 && emp.roleid==14) 
       { 
        Intent intent=new Intent(MainActivity.this,Second.class); 
        intent.putExtra("empid",emp.empid); 
        startActivity(intent); 
       } 
      else 
       { 
        alert.showAlertDialog(MainActivity.this, "Login failed..", "Wrong credential please enter again", false); 

       } 


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


    } 

    @Override 
    protected String doInBackground(String... params) { 
     Log.e("reached","reaching"); 
     Log.v(TAG,"Before intent object"); 
     HttpURLConnection urlConnection = null; 
     BufferedReader reader = null; 
     // String[] loginVal = params[0].split(";"); 
     //String build="http://192.168.0.102/login.php?user_name="+params[0].split(";")[0]+"&password="+params[0].split(";")[1]; 
     //String build="http://192.168.1.10:8080/upstest/rest/profile/loginvalidate.sp?"; 
     String build= null; 
     try { 
      build = Util.getProperty("login_url",getApplicationContext()); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     String build1="username="+params[0].split(";")[0]+"&password="+params[0].split(";")[1]; 
     String x=build+build1; 
     Log.e("the url ", x); 
     try { 
      URL url = new URL(x); 
      urlConnection = (HttpURLConnection) url.openConnection(); 
      urlConnection.setRequestMethod("GET"); 
      urlConnection.connect(); 
      InputStream inputStream = urlConnection.getInputStream(); 

      StringBuffer buffer = new StringBuffer(); 
      if (inputStream == null) 
      { 
       Log.e("Data", "can't fetch"); 
      } 
      reader = new BufferedReader(new InputStreamReader(inputStream)); 
      Log.e("Bufferreader",String.valueOf(reader)); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       // Since it's JSON, adding a newline isn't necessary (it won't affect parsing) 
       // But it does make debugging a *lot* easier if you print out the completed 
       // buffer for debugging. 
       buffer.append(line + "\n"); 
      } 
      // Intent intent = new Intent(getApplicationContext(), Second.class); 
      if (!buffer.toString().contains("failed")) 
      { 
      //  startActivity(intent); 
      return buffer.toString(); 
      // finish(); 
      } 
      else{ 

       return "login incorrect"; 
       } 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 
+0

あなたのコードは動作するはずです。あなたのshowAlertDialogメソッドが呼び出されているかどうかチェックし、満足しているかどうかチェックしてください。 –

答えて

0

ちょうどあなたが条件を失敗したログイン間違った状態またはログインに"login incorrect"を戻ってきているので、result!=nullからresult==nullを変更し、あなたが任意の文字列を返すされているときに正しいされていないresult==null、をチェックしています。結果をnullにすることはできません。

関連する問題