gpt4 book ai didi

java - Sugar ORM 如何将数据添加到表中的一行

转载 作者:行者123 更新时间:2023-11-29 07:08:22 25 4
gpt4 key购买 nike

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

所以我有一个名为 UserProfiles.java 的 Activity ,在其中我向用户询问各种信息,然后将它们存储在数据库中。所以此时我的数据库中有大约 20 条记录/行。然而问题是,当我将用户发送到下一个 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”,然后将用户密码信息添加到该表中的相应列。

最佳答案

当您在 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);

关于java - Sugar ORM 如何将数据添加到表中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com