Sugar ORM, как мне добавить данные в строку в таблице
Добрый день, все, что я использую в Android Studio, у меня есть довольно хорошее представление о том, как использовать сахарную ORM на данный момент, но есть одна вещь, которую я просто не могу найти или выяснить.
Итак, у меня есть действие с именем UserProfiles.java, в котором я спрашиваю пользователя о различных вещах, а затем сохраняю их в базе данных. Так что на данный момент у меня есть около 20 записей / строк в базе данных. Проблема, однако, заключается в том, что, когда я отправляю пользователя к следующему действию (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@gmail.com", а затем добавит информацию о пользовательских выводах в соответствующий столбец этой таблицы.
1 ответ
Когда вы создаете новую запись в Sugar ORM, вы получаете уникальный идентификатор обратно из save(). На первом занятии получите идентификатор и передайте его следующему занятию:
long new_user_id = m.save();
...
Intent intent = new Intent(UserProfile.this, UserPins.class);
intent.putExtra("NEW_USER_ID", new_user);
startActivity(intent);
Затем вы можете получить его в новом упражнении с помощью:
long new_user_id = getIntent().getLongExtra("NEW_USER_ID",0);
Затем вы можете использовать идентификатор, чтобы получить запись для обновления:
Mia m = Mia.findById(Mia.class, new_user_id);