Sugar ORM 如何将数据添加到 table 中的一行

Sugar ORM how do i add data to a row in the table

美好的一天,我正在使用 android studio,此时我对如何使用 sugar ORM 有一个相当好的想法,但有一件事我无法找到或弄清楚。

所以我有一个名为 UserProfiles.java 的 activity,我在其中向用户询问各种信息,然后将它们存储在数据库中。所以此时我在数据库中有大约 20 records/rows。然而,问题是当我将用户发送到下一个 activity (UserPins.java) 时,我要求他们现在设置一些附加信息,我如何将此信息添加到与具有用户的数据相同的行配置文件信息?

//this is my UserProfiles.java

   package com.chika.mia;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
     import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import com.chika.mia.models.Mia;


    public class UserProfile extends AppCompatActivity implements            View.OnClickListener {
    private EditText Name, PhoneNumber, Email, Password, Address;
    private Button SaveUser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_profile);
        Name = (EditText)findViewById(R.id.Name);
        PhoneNumber = (EditText)findViewById(R.id.PhoneNumber);
        Email = (EditText)findViewById(R.id.Email);
        Password = (EditText)findViewById(R.id.Password);
        Address = (EditText)findViewById(R.id.Address);
        SaveUser = (Button)findViewById(R.id.SaveUser);
        SaveUser.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        Mia m = new Mia();
        m.setName(register.g);
        m.setPhoneNumber(Integer.parseInt(PhoneNumber.getText().toString())) ;
        m.setEmail(register.i) ;
        m.setPassword(register.h);
        m.setAddress(Address.getText().toString()) ;
        m.setLocation("MiaL");
        m.setWipePhone("MiaWP");
        m.setDispMessage("MiaDM");
        m.setAlarm("MIAA");
        m.setShutdown("MIASD");
        m.save();

        Toast.makeText(this, " " + m.getName(), Toast.LENGTH_LONG).show();
        Intent intent = new Intent(UserProfile.this, UserPins.class);
        startActivity(intent);
    }
    }

这是我的 Userpins.java

package com.chika.mia;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import com.chika.mia.models.Mia;
import com.orm.query.Condition;
import com.orm.query.Select;

public class UserPins extends AppCompatActivity implements     View.OnClickListener {
private EditText     UserLocation,UserWipePhone,UserDisplayMsg,UserAlarm,UserShurdown;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_pins);
    UserLocation = (EditText)findViewById(R.id.UserLocation);
    UserWipePhone = (EditText)findViewById(R.id.UserWipePhone);
    UserDisplayMsg = (EditText)findViewById(R.id.UserDisplayMsg);
    UserAlarm = (EditText)findViewById(R.id.UserAlarm);
    UserShurdown = (EditText)findViewById(R.id.UserShutdown);
}

@Override
public void onClick(View v) {


    Mia m = new Mia();
    Select.from(Mia.class).where(Condition.prop("Name").eq(register.i)).list();
    m.setLocation(UserLocation.getText().toString());
    m.setWipePhone(UserWipePhone.getText().toString());
    m.setDispMessage(UserDisplayMsg.getText().toString());
    m.setAlarm(UserAlarm.getText().toString());
    m.setShutdown(UserShurdown.getText().toString());
    m.update();
    Intent intent = new Intent(this,AppSettings.class);
    startActivity(intent);
}
  }

我的目标是这样的,所以对于哪个用户登录说 "Tom",我已经整理好登录和注册页面。它将遍历数据库并查找名称 "Tom" 或电子邮件 "tom@gmail.com",然后将用户密码信息添加到 table.

中的相应列中

当您在 Sugar ORM 中创建新记录时,您会从 save() 返回一个唯一 ID。在您的第一个 activity 上,获取 ID,并将其传递给下一个 activity:

long new_user_id = m.save();
...
Intent intent = new Intent(UserProfile.this, UserPins.class);
intent.putExtra("NEW_USER_ID", new_user);
startActivity(intent);

然后您可以在新的 activity 中获取它:

long new_user_id = getIntent().getLongExtra("NEW_USER_ID",0);

然后您可以使用该 ID 获取要更新的记录:

Mia m = Mia.findById(Mia.class, new_user_id);