如何在 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)