2016-11-23 70 views
0

好日子我所有使用的Android工作室,我有一個相當不錯的想法,在這一點上如何使用糖的ORM,但有一件事,我只是找不到或弄清楚。糖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」或電子郵件「[email protected]」,然後將用戶引腳信息添加到該表中的相應列。

回答

2

當您在Sugar ORM中創建新記錄時,將從save()中獲取唯一的ID。關於你的第一個活動,得到了ID,並把它傳遞到下一個活動:

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); 

然後,您可以使用該ID來獲得要更新的記錄:

Mia m = Mia.findById(Mia.class, new_user_id); 
相關問題