将值添加到可扩展parcelable的对象 - Android

时间:2017-01-01 22:01:20

标签: java android generics parcelable

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

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

List<? extends SearchSuggestion>

和SearchSuggestion是一个扩展Parcelable的接口:

import android.os.Parcelable;

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

我想我必须创建一个实现SearchSuggestion的类并在那里放置一些值?

这样的东西?

public class MyClass implements SearchSuggestion {
    public String mystring;

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

我真的不知道如何解决这个问题。 我不知道还有什么可以在这里发帖来帮助你,所以如果你需要什么,请告诉我。

1 个答案:

答案 0 :(得分:0)

实施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);