首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据的MatrixCursor从活动传递到片段

将数据的MatrixCursor从活动传递到片段
EN

Stack Overflow用户
提问于 2018-10-10 01:14:39
回答 2查看 48关注 0票数 0

这个问题的核心是如何将数据的MatrixCursor从活动发送到片段。

我在我的活动中执行搜索功能,并返回一个片段,其中包含一个列表,该列表将填充来自查询响应的数据,该响应是一个Matrix游标。

到目前为止,Bundle和parcelable都不适合我。有什么建议或指导吗?

EN

回答 2

Stack Overflow用户

发布于 2018-10-10 01:25:10

我认为有三种可能的选择。

  1. 尝试Gson。您可以将实例转换为字符串以传递它,然后从字符串数据重新实例化它。但是,这不适用于片段中的everything.
  2. Create一个新方法。您并不打算在构造函数中传递自定义参数,但您可以稍后传递它:

私有MatrixCursor游标;公共空setCursor(MatrixCursor游标){ this.cursor =游标;}

因为它是同一个实例,所以对片段中的实例所做的更改将反映在您的活动中。但是,如果您旋转您的设备或导致另一个配置更改,这将导致问题。要解决此问题,请将以下内容添加到清单中的<activity>属性:

android:configChanges="orientation|keyboardHidden"

  • Fragments保留对其父活动引用。您可以将帮助器方法添加到您的活动中,这些帮助器方法实质上是从MatrixCursor实例代理所需的方法:

public void addRow(Object[] columnValues) { cursor.addrow(columnValues);} //etc

然后,在你的片段中,你可以这样做:

((MyActivityClass) getActivity()).addRow(columnValues); )

选项3可能是最好的选择,因为它不依赖于可能无法工作的东西,也不依赖于基本上是黑客的东西。

票数 0
EN

Stack Overflow用户

发布于 2018-10-10 01:28:32

使界面可搜索

代码语言:javascript
复制
public interface Searchable {
     MatrixCursor getSearchResult() 
}

确保将此接口实现到您的活动中。

代码语言:javascript
复制
public MainActivity extends AppCompatActivity implements Searchable {

    private MatrixCursor mSearchResultMatrixCursor;
    ...
    @Override public MatrixCursor getSearchResult() {
         return mSearchResultMatrixCursor;
    }    
}

在片段onCreate中或您想要使用MatrixCursor的任何地方,

你可以打电话给我

代码语言:javascript
复制
if(getActivity != null && getActivity instanceOf Searchable) {
         MatrixCursor matrixCursor = ((Searchable)getActivity).getSearchResult()
}

只要没有重新创建活动,这种情况就会一直存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52726196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档