登录后编辑/更新用户信息[Android]

时间:2017-01-14 10:00:20

标签: java php android

我目前正在开发一款可以管理用户信息的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

总是欢迎回答:)

2 个答案:

答案 0 :(得分:1)

在PHP服务器中,您需要创建一个可以执行此操作的方法。 我看到你可以POST到服务器了。因此,在JSON中发布服务器的新信息。 {   user_id:1   电子邮件:newemail@email.em }

http://192.168.0.19/edit_user.php 在这里,您需要从请求中读取值。更改数据库中的数据,并发回响应。

在Android中,您可以再次重新加载用户的信息。编辑成功时,比其工作做得好。

将数据加载到onResume()。

不要忘记使用JsonWebToken,或用于安全连接!!

加载数据 - &gt;转到编辑屏幕 - &gt; POST数据到服务器 - &gt;服务器更改值是数据库 - &gt;写入成功/失败消息在android-&gt;关闭编辑屏幕 - >再次加载数据

答案 1 :(得分:0)

您可以在TextView上使用onLongPress侦听器,然后在用户长按时显示一个对话框以获取用户名。用户完成后,通过api调用将该文本更新到服务器,然后更新textview。