【问题标题】:Adding values to an object that extends parcelable - Android向扩展 parcelable 的对象添加值 - Android
【发布时间】:2017-01-01 22:01:20
【问题描述】:

我正在尝试将此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;
     }
}

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

【问题讨论】:

  • 那么到目前为止您尝试过什么?您是否查看过您提到的来自 github 的代码?

标签: java android generics parcelable


【解决方案1】:

当您实现 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);

【讨论】:

  • 感谢您的努力。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 2011-11-04
相关资源
最近更新 更多