如何在Android中覆盖LiveData toString

时间:2018-03-09 21:52:36

标签: android android-room android-livedata

我正在玩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一个toString()方法(也许在Dao中)所以当我打印到系统时我不会得到:

I / System.out:android.arch.lifecycle.ComputableLiveData$1@7638ae0?

2 个答案:

答案 0 :(得分:2)

不,抱歉 - 您没有创建该对象。房间是。

答案 1 :(得分:0)

您可以覆盖Person.class中的“toString”方法 (为简单起见,使用Ctrl + O)