2017-01-14 3 views
0

В настоящее время я работаю над Android-приложением, которое может управлять информацией пользователей. Для этого у меня есть форма регистрации (имя, имя пользователя, адрес электронной почты и пароль), а после ведения журнала мое приложение отображает тост («Добро пожаловать», имя пользователя »). И теперь у меня есть некоторые проблемы ... Я не знаю, как сделать активность, когда пользователь может обновлять свои данные, такие как его почтовый адрес, его имя пользователя или пароль.Редактировать/Обновить информацию о пользователе после loggin [Android]

код моего LoginActivity.java

public class LoginActivity extends Activity { 

public ImageView bgLogo; 

Button login_button; 
EditText Username, Password; 
String username, password; 
String login_url = "http://192.168.0.19/login.php"; 
AlertDialog.Builder builder; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); // Enlever la barre bleue 
    setContentView(R.layout.activity_login); 

    initExit(); 

    builder = new AlertDialog.Builder(LoginActivity.this); 
    login_button = (Button) findViewById(R.id.bLogin); 
    Username = (EditText) findViewById(R.id.etUsername); 
    Password = (EditText) findViewById(R.id.etPassword); 

    login_button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      username = Username.getText().toString(); 
      password = Password.getText().toString(); 

      if (username.equals("") || password.equals("")) { 

       builder.setTitle("Mince une erreur..."); 
       displayAlert("Veuillez entrer un username et un mot de passe correct..."); 
      } 

      else { 

       StringRequest stringRequest = new StringRequest(Request.Method.POST, login_url, 
         new Response.Listener<String>() { 
          @Override 
          public void onResponse(String response) { 

           JSONArray jsonArray = null; 
           try { 
            jsonArray = new JSONArray(response); 
            JSONObject jsonObject = jsonArray.getJSONObject(0); 
            String code = jsonObject.getString("code"); 

            if (code.equals("login_failed")) { 

             builder.setTitle("Erreur d'authentification"); 
             displayAlert(jsonObject.getString("message")); 
            } 

            else { 

             Intent intent = new Intent (getBaseContext(), UserAreaActivity.class); 
             Bundle bundle = new Bundle(); 
             bundle.putString("name", jsonObject.getString("name")); 
             intent.putExtras(bundle); 
             startActivity(intent); 
            } 
           } catch (JSONException e) { 
            e.printStackTrace(); 
           } 

          } 
         }, new Response.ErrorListener() { 

        @Override 
        public void onErrorResponse(VolleyError error) { 

         Toast.makeText(LoginActivity.this, "Erreur", Toast.LENGTH_LONG).show(); 
         error.printStackTrace(); 

        } 
       }) 
       { 
        @Override 
        protected Map<String, String> getParams() throws AuthFailureError { 

         Map <String, String> params = new HashMap<String, String>(); 
         params.put("user_name", username); 
         params.put("password", password); 
         return params; 
        } 
       }; 

       MySingleton.getInstance(LoginActivity.this).addToRequestque(stringRequest); 
      } 
     } 
    }); 
} 

private void initExit() { 

    bgLogo = (ImageView) findViewById(R.id.bgLogo1); 
    bgLogo.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick (View v) { 

      Intent intent = new Intent (LoginActivity.this, MainActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

public void displayAlert (String message) { 

    builder.setMessage(message); 
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      Username.setText(""); 
      Password.setText(""); 
     } 
    }); 

    AlertDialog alertDialog = builder.create(); 
    alertDialog.show(); 
} 

@Override 
public void onBackPressed() { 
    // do nothing. 
    Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
    startActivity(intent); 
    return; 
} 

код моего UserAreaActivity.java

public class UserAreaActivity extends Activity { 

public ImageView bgNet; 
public ImageView bgChat; 
public ImageView bgStats; 
public ImageView bgGo; 
public Button bLogout; 

TextView name; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); // Enlever la barre bleue 
    setContentView(R.layout.activity_user_area); 

    name = (TextView) findViewById(R.id.name); 

    Bundle bundle = getIntent().getExtras(); 
    if (bundle != null) 
    { 
     name.setText(" "+bundle.getString("name")); 
    } 

    else 
    { 
     name.setText("Ajanthan"); 
    } 

    initGoHome(); 
    initPlay(); 
    initGoStats(); 
    initGoChat(); 
    buttonLogout(); 
} 

@Override 
public void onBackPressed() { 
    return; 
} 

private void initGoHome() { 

    bgNet = (ImageView) findViewById(R.id.bgNet); 
    bgNet.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick (View v) { 

      Intent intent = new Intent (UserAreaActivity.this, HomeActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

private void initPlay() { 

    bgGo = (ImageView) findViewById(R.id.bgGo); 
    bgGo.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick (View v) { 

      Intent intent = new Intent (UserAreaActivity.this, PlayActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

private void initGoStats() { 

    bgStats = (ImageView) findViewById(R.id.bgStats); 
    bgStats.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick (View v) { 

      Intent intent = new Intent (UserAreaActivity.this, StatsActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

private void initGoChat() { 

    bgChat = (ImageView) findViewById(R.id.bgChat); 
    bgChat.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick (View v) { 

      Intent intent = new Intent (UserAreaActivity.this, ChatActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

private void buttonLogout() { 

    bLogout = (Button) findViewById(R.id.bLogout); 
    bLogout.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick (View v) { 

      Intent intent = new Intent (UserAreaActivity.this, MainActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

И картины моей UserAreaActivity, где я хочу, чтобы пользователи обновляют информацию. Layout of my UserAreaActivity

ответы всегда приветствуются :)

ответ

0

Вы можете пользователь onLongPress слушателем на TextView, а затем, когда пользователь длительное нажатие показывает диалоговое окно, чтобы получить имя пользователя. Когда пользователь выполнит, обновите этот текст на сервере по вызову api, а затем обновите текст.

1

На вашем сервере PHP вам нужно создать метод, который может это сделать. Я вижу, что вы можете отправить сообщение на сервер. Итак, отправляйте новую информацию для сервера в JSON. { user_id: 1 электронная почта: [email protected] }

http://192.168.0.19/edit_user.php Здесь вам нужно прочитать значения из запроса. Измените данные в базе данных и отправьте ответ.

В Android вы можете повторно загрузить информацию пользователя. Когда редактирование будет успешным, чем его работа хорошая.

Запись данных на onResume().

Не забудьте использовать JsonWebToken или что-то для подключения к безопасности!

Загрузить данные -> Перейдите на экран редактирования-> Данные POST на сервер-> Значения изменений в сервере -> База данных-> Запись успеха/сбой на сервере android-> закрыть экран редактирования-> Загрузка данных снова