【问题标题】:How to override LiveData toString in Android如何在 Android 中覆盖 LiveData toString
【发布时间】:2018-03-09 21:52:36
【问题描述】:

我正在玩 android,因为我正在尝试使用 androids Room 学习 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 ?

【问题讨论】:

    标签: android android-room android-livedata


    【解决方案1】:

    不,抱歉——你没有创建那个对象。房间是。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        • 2015-02-25
        • 2012-05-30
        • 1970-01-01
        相关资源
        最近更新 更多