2014-12-24 5 views
0

Привет, я разрабатываю приложение для Android, но мой login button работает неправильно, так как я могу зарегистрироваться с web service, но после того, как на странице входа он перестает работать, так как я могу перемещаться с регистрационной страницы на другую страницу, но кнопка Логин не позволяет мне войти в систему, пожалуйста, помогите мне, ниже мой код для входа в систему функциональныхКнопка входа в систему Android перестает работать

благодаря

public class Login extends ActionBarActivity { 
Button btnLogin; 
Button fbbutton; 
Button gpbutton; 
Button twbutton; 
Button btnRegister; 

EditText username, password; 
String uname, pass; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 
    username = (EditText) findViewById(R.id.username); 
    password = (EditText) findViewById(R.id.password); 
    Button btnLogin = (Button) findViewById(R.id.btnLogin); 

    //import button 
    Button btnRegister = (Button) findViewById(R.id.btnRegister); 

    btnRegister.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View view){ 
      Intent i = new Intent(getApplicationContext(), 
        Signup.class); 
      startActivity(i); 
      finish(); 
     } 
    }); 


} 

public void send(View v) { 
    try { 

     // CALL post method to make post method call 
     post(); 
    } catch (Exception ex) { 
     String error = ex.getMessage(); 
    } 

} 

//Method to get list value pair and form the query 
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException { 
    StringBuilder result = new StringBuilder(); 
    boolean first = true; 

    for (NameValuePair pair : params) { 
     if (first) 
      first = false; 
     else 
      result.append("&"); 

     result.append(URLEncoder.encode(pair.getName(), "UTF-8")); 
     result.append("="); 
     result.append(URLEncoder.encode(pair.getValue(), "UTF-8")); 
    } 

    return result.toString(); 
} 


//Method to post data to webservice 
public void post() throws UnsupportedEncodingException { 
    try { 
     // Calling async task to get json 
     new DownloadOperation().execute(); 

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

//Handle popout messages 
public void error(boolean flag, String etext) { 
    if (flag == true) { 
     Toast.makeText(getBaseContext(), etext, Toast.LENGTH_SHORT).show(); 
     //Code to handle failure 
     username.setText(""); 
     password.setText(""); 

    } else { 
     Toast.makeText(getBaseContext(), etext, Toast.LENGTH_SHORT).show(); 
     setContentView(R.layout.welcome); 

    } 
} 

private class DownloadOperation extends AsyncTask<Void, Void, String> { 
    String uname = ""; 
    String pass = ""; 


    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // Get user defined values 
     uname = username.getText().toString(); 
     pass = password.getText().toString(); 

    } 

    @Override 
    protected String doInBackground(Void... params) { 
     String response = ""; 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://rgbpallete.in/led/api/login"); 
     HttpEntity httpEntity = null; 
     HttpResponse httpResponse = null; 
     try { 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
      nameValuePairs.add(new BasicNameValuePair("uname", uname)); 
      nameValuePairs.add(new BasicNameValuePair("pass", pass)); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      httpResponse = httpclient.execute(httppost); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     try { 
      httpEntity = httpResponse.getEntity(); 
      response = EntityUtils.toString(httpEntity); 
      return response; 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String jsonStr) { 
     super.onPostExecute(jsonStr); 
     Log.d("tag", "Result:\n" + jsonStr); 
     if (jsonStr != null) { 
      try { 
       JSONObject jsonObj = new JSONObject(jsonStr); 
       String message = jsonObj.getString("message"); 
       boolean error = jsonObj.getBoolean("error"); 

       error(error, message); 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } else { 
      Log.e("ServiceHandler", "Couldn't get any data from the url"); 
     } 
    } 
} 

@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 


    return super.onOptionsItemSelected(item); 
} 

код расположение btnLogin кнопки

<Button 
    android:id="@+id/btnLogin" 
    style="@android:style/Widget.Material.Button.Borderless" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/password" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="20dp" 
    android:background="@drawable/button" 
    android:text="Login" 
    android:textColor="#ffffff" 
    android:textSize="20sp" 
    android:onClick="welcome" /> 
+0

дают ошибку LogCat –

+2

Пожалуйста, покажите код OnClick и аварии времени LogCat кнопку входа, в –

+0

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

ответ

2

изменить эту строку

Button btnLogin = (Button) findViewById(R.id.btnLogin); 

к этому

btnLogin = (Button) findViewById(R.id.btnLogin); 

вы не инициализировать его properly.you создает новый variable.if вы получаете исключения нулевого указателя, который был бы причиной

+1

ok давайте попробуем это спасибо приятелю –

+1

, но он ниот устанавливает любой 'onClickListener' для этой кнопки' b tnLogin' и не имеет метода 'welcome' в действии – kId

0
  1. убедитесь, что вы зарегистрировали onclick прослушиватель на свою кнопку входа в систему, вы не зарегистрировали ни одного прослушивателя кликов с btnLogin, а также не устанавливать никаких действий, которые необходимо выполнить onClick to btnLogin !! только что реализовали те, кто в btnRegister! Я думаю, вы это забыли!

  2. если вы используете атрибут onclick xml; то убедитесь, что эти вещи верны в отношении вашего метода:

a. ваш метод является общедоступным и является членом Activity.

b. соответствующий метод должен иметь один параметр, тип которого должен соответствовать объекту XML. например: View

+0

12-24 14: 29: 26.199 21349-21349/com.example.abhi.micro D/dalvikvm: Late-enable CheckJNI 12-24 14: 29: 26.569 21349- 21349/com.example.abhi.micro I/dalvikvm: Не удалось найти метод android.view.ViewGroup.onNestedScrollAccepted, на который ссылается метод –

+0

, если вы не получите правильный ответ на мои вопросы, как я могу помочь u? теперь проблема, кажется, с XML, которые вы раздуванием –

+0

здесь приветствуется методой общественного класс Welcome расширяет ActionBarActivity { @ **** Override защищенных недействительного OnCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.welcome); } @ **** Переопределить public boolean onCreateOptionsMenu (Меню меню) { // Надуть меню; это добавляет элементы в панель действий, если она присутствует. getMenuInflater(). Inflate (R.menu.menu_main, menu); return true; } –

2

Ваша заявка падает, потому что в xml вы установили onClick как welcome (согласно вашему комментарию). Но вы не реализовали его в Activity. Итак, когда вы нажимаете на эту кнопку, вы получаете java.lang.NoSuchMethodException. В Activitywelcome метода требуется добавить это в Activity

public void welcome(View v) { 
    //do your action i.e call AsyncTask 
} 
0

Вы отсутствуют

Кнопка btnLogin = (кнопка) findViewById (R.id.btnLogin);

btnLogin .setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View view){ 
      //all your stuff here 
     } 
    }); 

Сложение и тест .. На самом деле для каждого button вы должны использовать OnClickListener

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