2016-07-31 17 views
0

ログインしようとして別の新しいページに移動しようとしましたが、ボタンをクリックした後に「無効なユーザー名またはパスワード」というメッセージが表示される問題があります。ポップアップメッセージ「無効なユーザー名またはパスワード」

私は何が起こっているのかわかりませんし、私の問題を解決するためにいくつかの例のチュートリアルを検索しても、答えを見つけることができません。ここで

は私のコードです:

public class MainActivity extends ActionBarActivity { 
private EditText editTextUserName; 
private EditText editTextPassword; 

public static final String USER_NAME = "USERNAME"; 

String username; 
String password; 

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

    editTextUserName = (EditText) findViewById(R.id.editTextUserName); 
    editTextPassword = (EditText) findViewById(R.id.editTextPassword); 
} 

public void invokeLogin(View view){ 
    username = editTextUserName.getText().toString(); 
    password = editTextPassword.getText().toString(); 

    login(username,password); 

} 

private void login(final String username, String password) { 

    class LoginAsync extends AsyncTask<String, Void, String>{ 

     private Dialog loadingDialog; 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      loadingDialog = ProgressDialog.show(MainActivity.this, "Please wait", "Loading..."); 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      String uname = params[0]; 
      String pass = params[1]; 

      InputStream is = null; 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
      nameValuePairs.add(new BasicNameValuePair("username", uname)); 
      nameValuePairs.add(new BasicNameValuePair("password", pass)); 
      String result = null; 

      try{ 
       HttpClient httpClient = new DefaultHttpClient(); 
       HttpPost httpPost = new HttpPost(
         "http://192.168.1.101/test/read_allorder.php"); 
       httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

       HttpResponse response = httpClient.execute(httpPost); 

       HttpEntity entity = response.getEntity(); 

       is = entity.getContent(); 

       BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8); 
       StringBuilder sb = new StringBuilder(); 

       String line = null; 
       while ((line = reader.readLine()) != null) 
       { 
        sb.append(line + "\n"); 
       } 
       result = sb.toString(); 
      } catch (ClientProtocolException e) { 
       e.printStackTrace(); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      return result; 
     } 

     @Override 
     protected void onPostExecute(String result){ 
      String s = result.trim(); 
      loadingDialog.dismiss(); 
      if(s.equalsIgnoreCase("success")){ 
       Intent intent = new Intent(MainActivity.this, UserProfile.class); 
       intent.putExtra(USER_NAME, username); 
       finish(); 
       startActivity(intent); 
      }else { 
       Toast.makeText(getApplicationContext(), "Invalid User Name or Password", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

    LoginAsync la = new LoginAsync(); 
    la.execute(username, password); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

}

+0

result = sb.toString(); 

を交換してください。 – Shaishav

+0

あなたのdoInBackgroundが成功を返しておらず、成功しなかった場合にonPostExecuteで成功したかどうかをチェックします。無効なユーザ名またはパスワード doInBackgroundで返された理由を確認してください –

+0

関連するHTMLパーツサーバーが表示するログインページの – Robert

答えて

0

あなたはこれをしようとしている -

while ((line = reader.readLine()) != null) 
        { 
         sb.append(line + "\n"); 
        } 
        result = sb.toString(); 

結果が成功に等しいならば、次のアクティビティに進みますが、結果はおそらく何もすることができます。

しかし、あなたは次のアクティビティに行きたい場合は、少なくともあなたが使用している認証ユーティリティ/サービス伝え、そのコードを共有する必要があり

result = "success" 
+0

あなたの助けてくれてありがとう、しかし、私は "成功"に変更すると、私のアプリは任意のユーザー名とパスワードを受け入れることができる、誰もが私のアプリにログインすることができます、なぜ? – Ziha

関連する問題