这个问题的核心是如何将数据的MatrixCursor从活动发送到片段。
我在我的活动中执行搜索功能,并返回一个片段,其中包含一个列表,该列表将填充来自查询响应的数据,该响应是一个Matrix游标。
到目前为止,Bundle和parcelable都不适合我。有什么建议或指导吗?
发布于 2018-10-10 01:25:10
我认为有三种可能的选择。
私有MatrixCursor游标;公共空setCursor(MatrixCursor游标){ this.cursor =游标;}
因为它是同一个实例,所以对片段中的实例所做的更改将反映在您的活动中。但是,如果您旋转您的设备或导致另一个配置更改,这将导致问题。要解决此问题,请将以下内容添加到清单中的<activity>属性:
android:configChanges="orientation|keyboardHidden"
public void addRow(Object[] columnValues) { cursor.addrow(columnValues);} //etc
然后,在你的片段中,你可以这样做:
((MyActivityClass) getActivity()).addRow(columnValues); )
选项3可能是最好的选择,因为它不依赖于可能无法工作的东西,也不依赖于基本上是黑客的东西。
发布于 2018-10-10 01:28:32
使界面可搜索
public interface Searchable {
MatrixCursor getSearchResult()
}确保将此接口实现到您的活动中。
public MainActivity extends AppCompatActivity implements Searchable {
private MatrixCursor mSearchResultMatrixCursor;
...
@Override public MatrixCursor getSearchResult() {
return mSearchResultMatrixCursor;
}
}在片段onCreate中或您想要使用MatrixCursor的任何地方,
你可以打电话给我
if(getActivity != null && getActivity instanceOf Searchable) {
MatrixCursor matrixCursor = ((Searchable)getActivity).getSearchResult()
}只要没有重新创建活动,这种情况就会一直存在。
https://stackoverflow.com/questions/52726196
复制相似问题