向扩展 parcelable 的对象添加值 - Android

Adding values to an object that extends parcelable - Android

我正在尝试将此 search box 实施到我的项目中。 当用户在文本区域中键入一些文本但我卡住了时,我需要创建一个包含所有建议的列表。

我需要创建的列表具有以下形式:

List<? extends SearchSuggestion>

SearchSuggestion 是一个扩展 Parcelable 的接口:

import android.os.Parcelable;

public interface SearchSuggestion extends Parcelable{
    String getBody();
}

我想我必须创建一个 class 来实现 SearchSuggestion 并在其中放置一些值?

是这样的吗?

public class MyClass implements SearchSuggestion {
    public String mystring;

     public MyClass(String text){
         this.mystring = text;
     }
}

我真的不知道如何处理这个问题。 我不知道还有什么可以post在这里帮助你帮助我,所以如果你需要什么就告诉我。

当您实施 SearchSuggestion 时,它会为您提供方法 String getBody();

因此您的对象将如下所示:

public class MyClass implements SearchSuggestion {
    private final String myString;

     public MyClass(String text){
         this.myString = text;
     }

     @Override
     public String getBody() {
          return myString;
     }
}

此外,您的列表不需要通配符 (?),它可以是:

 List<SearchSuggestion>

所有这些都在您链接的存储库的自述文件中进行了解释:

https://github.com/arimorty/floatingsearchview/blob/master/README.md

它有一个演示可以满足您的需求:

https://github.com/arimorty/floatingsearchview/blob/ef70366635e19ba1c1337c7df7b2941f8856f756/sample/src/main/java/com/arlib/floatingsearchviewdemo/data/ColorSuggestion.java

&

https://github.com/arimorty/floatingsearchview/blob/ef70366635e19ba1c1337c7df7b2941f8856f756/sample/src/main/java/com/arlib/floatingsearchviewdemo/data/DataHelper.java#L69

&

https://github.com/arimorty/floatingsearchview/blob/957d726ce0ac31c5db9ae0b55bf29878fa6aafb7/sample/src/main/java/com/arlib/floatingsearchviewdemo/fragment/ScrollingSearchExampleFragment.java#L144

显示您是这样添加建议的:

 searchView.swapSuggestions(yourListOfSuggestions);