如何在 Android 中覆盖 LiveData toString
How to override LiveData toString in Android
我在玩 android,因为我试图在 android 的房间学习 M-V-VM。我创建了一个结构如下:
Person.class、PersonDao.class、PersonDatabase.class、DatabaseRepository.class、PersonViewModel.class、MainActivity.class
ActivityMain.class
public class MainActivity extends AppCompatActivity {
private EditText age;
private EditText name;
Person person;
private PersonViewModel personViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = findViewById(R.id.name);
age = findViewById(R.id.age);
personViewModel = ViewModelProviders.of(this).get(PersonViewModel.class);
}
public void addPerson(View view){
int sAge = Integer.parseInt(age.getText().toString());
String sName = name.getText().toString();
person = new Person(sName, sAge);
System.out.println(person.toString());
personViewModel.insert(person);
System.out.println(personViewModel.getmAllPeople());
}
}
有没有地方我可以@Override a toString() 方法(可能在 Dao 中)所以当我打印到系统输出时我没有得到:
I/System.out: android.arch.lifecycle.ComputableLiveData$1@7638ae0 ?
不,抱歉 -- 您没有创建该对象。房间是。
您可以在 Person.class 中覆盖 "toString" 方法
(为简单起见,使用 Ctrl+O)
我在玩 android,因为我试图在 android 的房间学习 M-V-VM。我创建了一个结构如下:
Person.class、PersonDao.class、PersonDatabase.class、DatabaseRepository.class、PersonViewModel.class、MainActivity.class
ActivityMain.class
public class MainActivity extends AppCompatActivity {
private EditText age;
private EditText name;
Person person;
private PersonViewModel personViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = findViewById(R.id.name);
age = findViewById(R.id.age);
personViewModel = ViewModelProviders.of(this).get(PersonViewModel.class);
}
public void addPerson(View view){
int sAge = Integer.parseInt(age.getText().toString());
String sName = name.getText().toString();
person = new Person(sName, sAge);
System.out.println(person.toString());
personViewModel.insert(person);
System.out.println(personViewModel.getmAllPeople());
}
}
有没有地方我可以@Override a toString() 方法(可能在 Dao 中)所以当我打印到系统输出时我没有得到:
I/System.out: android.arch.lifecycle.ComputableLiveData$1@7638ae0 ?
不,抱歉 -- 您没有创建该对象。房间是。
您可以在 Person.class 中覆盖 "toString" 方法 (为简单起见,使用 Ctrl+O)