在Android中,Activity和Fragment是两种用户界面的组件,它们之间有一定的关系。
下面是一个简单的示例,演示了如何在Activity中添加一个Fragment:
MainActivity.java:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建一个Fragment实例
ExampleFragment fragment = new ExampleFragment();
// 将Fragment添加到Activity中
getSupportFragmentManager()
.beginTransaction()
.add(R.id.fragment_container, fragment)
.commit();
}
}
activity_main.xml:
下面是一个简单的示例,演示了如何在Activity中使用ViewModel来获取数据:
MainActivity.java:
public class MainActivity extends AppCompatActivity {
private MainViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建ViewModel实例
viewModel = ViewModelProviders.of(this).get(MainViewModel.class);
// 观察数据的更改
viewModel.getData().observe(this, new Observer() {
@Override
public void onChanged(String data) {
// 在界面上显示数据
TextView textView = findViewById(R.id.text_view);
textView.setText(data);
}
});
}
}
MainViewModel.java:
public class MainViewModel extends ViewModel {
private MutableLiveData data;
public MutableLiveData getData() {
if (data == null) {
data = new MutableLiveData<>();
loadData();
}
return data;
}
private void loadData() {
// 模拟从网络或数据库获取数据的过程
String newData = "Hello, ViewModel!";
data.setValue(newData);
}
}
activity_main.xml:
以上示例演示了如何通过ViewModel从Activity中获取数据,并在界面上显示数据。ViewModel负责存储和管理数据,Activity/Fragment负责展示数据。