确保在 activity 中连接成功的MySQL数据库在其他fragment可访问
时间: 2023-06-13 21:07:46 浏览: 76
要确保在activity中连接成功的MySQL数据库在其他fragment中可访问,可以将数据库连接对象保存在activity中,并使用接口在fragment中访问该对象。
首先,在activity中创建一个接口,该接口包含一个方法来获取数据库连接对象。例如:
```java
public interface DatabaseConnectionInterface {
Connection getDatabaseConnection();
}
```
然后,在activity中实现该接口,并在方法中返回数据库连接对象。例如:
```java
public class MainActivity extends AppCompatActivity implements DatabaseConnectionInterface {
private Connection mConnection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// connect to database
mConnection = connectToDatabase();
// pass connection object to fragments
FragmentManager fragmentManager = getSupportFragmentManager();
for (Fragment fragment : fragmentManager.getFragments()) {
if (fragment instanceof DatabaseConnectionInterface) {
((DatabaseConnectionInterface) fragment).getDatabaseConnection(mConnection);
}
}
}
@Override
public Connection getDatabaseConnection() {
return mConnection;
}
//...
}
```
在这个例子中,我们在activity的onCreate方法中连接到数据库,然后使用FragmentManager遍历所有的fragment,如果fragment实现了DatabaseConnectionInterface接口,则调用该接口的getDatabaseConnection方法,将数据库连接对象传递给fragment。
接下来,在fragment中实现该接口,并在方法中保存数据库连接对象。例如:
```java
public class MyFragment extends Fragment implements DatabaseConnectionInterface {
private Connection mConnection;
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// get database connection from activity
if (getActivity() instanceof DatabaseConnectionInterface) {
mConnection = ((DatabaseConnectionInterface) getActivity()).getDatabaseConnection();
}
}
@Override
public Connection getDatabaseConnection() {
return mConnection;
}
//...
}
```
在这个例子中,我们在fragment的onActivityCreated方法中获取activity的数据库连接对象,并保存在成员变量mConnection中,以便在需要时使用。
通过这种方式,我们可以确保在activity中连接成功的MySQL数据库在其他fragment中可访问。
阅读全文