2016-11-23 8 views
0

좋은 하루는 모두 android studio를 사용하고 있습니다.이 시점에서 설탕 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]"을 찾은 다음 해당 테이블의 해당 열에 userpins 정보를 추가합니다.

답변

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