2014-10-31 2 views
-2

Причина в том, что я заполняю свое имя пользователя и пароль и нажимаю кнопку входа в систему, он снова загружается на странице, требует ввода имени пользователя, а пароль - это мой исходный кодНамерение не переходит ко второму моему действию

public class MainActivity extends Activity { 

private EditText mTextUserName; 
private EditText mTextPassword; 
public String user_name; 
public String pass_word; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mTextUserName = (EditText) findViewById(R.id.textUserName); 
    mTextPassword = (EditText) findViewById(R.id.textPassword); 


    final Button mButtonLogin = (Button) findViewById(R.id.buttonLogin); 
    mButtonLogin.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      user_name = mTextUserName.getText().toString(); 
      pass_word = mTextPassword.getText().toString(); 
      // i am passing this intent 
      Intent goToNextActivity = new Intent(getApplicationContext(), ViewActivity.class); 

      goToNextActivity.putExtra("username", user_name); 
      goToNextActivity.putExtra("password", pass_word); 

      startActivity(goToNextActivity); 


     } 
    }); 
} 

и в шахте ViewActivity также

public class ViewActivity extends Activity { 

private WebView webView; 
public String pass_word; 
public String user_name; 

public void onCreate(Bundle savedInstanceState) { 


    super.onCreate(savedInstanceState); 
    setContentView(R.layout.view); 
    webView = (WebView) findViewById(R.id.webView); 

    webView.getSettings().setUseWideViewPort(true); 
    webView.setScrollbarFadingEnabled(false); 
    webView.getSettings().setDefaultFontSize(20); 
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.setWebViewClient(new WebViewClient()); 

       //here i get them 
       getIntent().getStringExtra("username"); 
       getIntent().getStringExtra("password"); 




    webView.loadUrl("http://intranet.mdis.uz/"); 
} 

но творящий произведения ((я товар.Обращайте 8 часов на исследования, но ничего не помогло мне

+0

Когда ты нажмите кнопку, вы не собираетесь в ViewActivity? Что делать, если вы пытаетесь выполнить намерение goToNextActivity = новый Intent (getActivity(), ViewActivity.class)? – michaelcarrano

+0

Непонятно, что вы пытаетесь сделать. Вы вызываете 'getIntent(). GetStringExtra (« имя пользователя »);' и 'getIntent(). GetStringExtra (« пароль »);' но ничего не делайте с возвращаемыми значениями. – MadEqua

+0

Тот факт, что действие изменилось, означает, что пользователь был зарегистрирован в –

ответ

0

Позвольте мне попробовать.

ли модификация, как это один раз увидеть плзли ...

public class MainActivity extends Activity { 

private EditText mTextUserName; 
private EditText mTextPassword; 
public String user_name; 
public String pass_word; 
ConnectionClass cc; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mTextUserName = (EditText) findViewById(R.id.textUserName); 
    mTextPassword = (EditText) findViewById(R.id.textPassword); 

    cc=new ConnectionClass(this); 
    final Button mButtonLogin = (Button) findViewById(R.id.buttonLogin); 
    mButtonLogin.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      user_name = mTextUserName.getText().toString(); 
      pass_word = mTextPassword.getText().toString(); 

      user_name=Uri.encode(user_name); // you can encode your parameters so that it does not throw exception for e.g it will replace a space as %20 otherwise if user enters special character error will come.. :) 
      pass_word=Uri.encode(pass_word); // same as above 

      String url="http://myserver.com/login.php?username="+user_name"&password="+user_name; // this is your server page url and passing username and password in plain url u can test it in browser to verify its working :) 

      new AsyncTask<String,Void,String>() // new android versions does not allow network operations on main thread but need to do asynchronously... 
      { 

       @Override 
       protected String doInBackground(String... params) { 

       return cc.getServerResponse(params[0]); 
       } 

       @Override 
     protected void onPostExecute(String result) { // this method runs on UI thread and is called when background process is done to make it more fancy u can use onPreExecute() to show a loader and dismiss the dialog here :) 
      super.onPostExecute(result); 
      if(result!=null) 
      { 
       if(result.equals("1") // assuming u r returning "1" if successful. 
       { 
        Toast.makeText(context, "Successful", 2000).show(); 
        Intent goToNextActivity = new Intent(MainActivity.this, ViewActivity.class); 
        goToNextActivity.putExtra("username", user_name); 
        goToNextActivity.putExtra("password", pass_word); 
        startActivity(goToNextActivity); 
       } 
      } 
      else 
       Toast.makeText(context, "Network problem...", 2000).show(); 
     } 

      }.execute(url); 


      } 


     } 
    }); 
} 

Вот ConnectionClass

public class ConnectionClass { 


    Context context; 
    public ConnectionClass(Context ctx) { 
     this.context=ctx; 
    } 


    public String getServerResponse(String urlLink) 
    { 

     try 
     { 

      HttpClient client = new DefaultHttpClient(); 
      HttpPost http_get = new HttpPost(url); 
      HttpResponse responses; 
      responses = client.execute(http_get); 
      if (responses != null) 
      { 
       InputStream in = responses.getEntity().getContent(); 
       String a = convertStreamToString(in); 
       // Log.i("RETURN",a+""); 
       return a; 
      } 

     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 



    String convertStreamToString(InputStream is) { 

     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
     StringBuilder sb = new StringBuilder(); 

     String line = null; 
     try 
     { 
      while ((line = reader.readLine()) != null) 
      { 
       sb.append(line); 
      } 
     } 
     catch (Exception e) 
     { 

      //Toast.makeText(context, e.toString()+" io2", Toast.LENGTH_LONG).show(); 
     } 
     finally 
     { 
      try 
      { 
       is.close(); 
      } 
      catch (Exception e) 
      { 

       //Toast.makeText(context, e.toString()+" io3", Toast.LENGTH_LONG).show(); 
      } 
     } 
     return sb.toString(); 
    } 

} 

Надеется, что это помогает u :)

Thx

1

Я думаю, что эта линия не так:

Intent goToNextActivity = new Intent(getApplicationContext(), ViewActivity.class); 

вы не должны использовать ApplicationContext при попытке начать новую деятельность. Попробуйте это:

Intent goToNextActivity = new Intent(MainActivity.this, ViewActivity.class); 

EDIT:

Попробуйте это, он должен отправить данные через POST:

webView = (WebView) findViewById(R.id.webView); 

    webView.getSettings().setUseWideViewPort(true); 
    webView.setScrollbarFadingEnabled(false); 
    webView.getSettings().setDefaultFontSize(20); 
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.setWebViewClient(new WebViewClient()); 

    String username = getIntent().getStringExtra("username"); 
    String password = getIntent().getStringExtra("password"); 

    String data = "username=" + username + "&password=" + password; 

    webView.postUrl("http://intranet.mdis.uz/", EncodingUtils.getBytes(data, "base64")); 
+0

снова тот же результат – Andrew

+0

Вы вводите правильные учетные данные? – rom4ek

+0

да, если вы хотите, я могу дать вам свои учетные данные для вас, чтобы попробовать – Andrew