Android - 片段中的适配器问题
Posted
技术标签:
【中文标题】Android - 片段中的适配器问题【英文标题】:Android - Adapters in fragments issue 【发布时间】:2016-12-25 07:01:12 【问题描述】:我是 android 开发的新手,当我尝试使用片段中的适配器时出现错误,我尝试在 onCreateView
下写下这一行
valueAdapterEn = new ValueAdapterEn(English_list, this);
这个错误在这个部分(English_list, this)
ValueAdapterEn
public class ValueAdapterEn extends BaseAdapter implements Filterable
private ArrayList<String> English_List;
private ArrayList<String> Filterd_EngList;
private LayoutInflater mInflater;
private ValueFilter valueFilter;
public ValueAdapterEn(ArrayList<String> English_List, Context context)
this.English_List = English_List;
this.Filterd_EngList = English_List;
mInflater = LayoutInflater.from(context);
getFilter();
@Override
public int getCount()
return 0;
@Override
public Object getItem(int position)
return null;
@Override
public long getItemId(int position)
return 0;
@Override
public View getView(int position, View convertView, ViewGroup parent)
return null;
@Override
public Filter getFilter()
return null;
LogCat
Error:(84, 30) error: constructor ValueAdapterEn in class ValueAdapterEn cannot be applied to given types;
required: no arguments
found: ArrayList<String>,TwoFragment
reason: actual and formal argument lists differ in length
问题可能出在“this”上
【问题讨论】:
您是否创建了 ValueAdapterEn? @AparajitaSinha 是的,我当然有 请分享您的 LogCat 消息错误 请贴出ValueAdapterEn
的构造函数
参数可能与构造函数不匹配
【参考方案1】:
您已经在constuctor
中创建了这个没有参数的ValueAdapterEn
类,因为我猜日志消息在那里显示。您如何在class
中传递参数。请同时发布您的相关代码以获得更多帮助和在深入挖掘一些android
代码之前先学习core-java
。您可以从this 和this 了解constructor
。
【讨论】:
这个。我只是想知道他如何在 IDE 编辑器中没有出错 我添加了构造函数【参考方案2】:你的 ValueAdapterEn 构造函数没有使用上下文:
你必须像下面这样实例化你的上下文;
public class ValueAdapterEn extends BaseAdapter implements Filterable
private Context context;
public ValueAdapterEn(ArrayList<String> English_List, Context context)
this.context = context ;
......
【讨论】:
我添加了构造函数 在这部分“this.context = context”我有无法解析符号错误 能否请您提供整个 LogCat 错误【参考方案3】:你必须通过 context
或 getActivity()
而不是 this
【讨论】:
我添加了 LogCat,请花点时间查看它,我尝试了 getActivity() 但它不起作用 我认为您没有使用这些参数声明构造函数 请不要发布猜测作为答案。 我添加了构造函数【参考方案4】:我还不允许发表评论,但我猜那里的适配器需要一个上下文,您正试图将它传递给第二个参数。片段不是有效的上下文。使用getActivity()
而不是this
。
【讨论】:
我添加了 LogCat,请花点时间查看它,我尝试了 getActivity() 但它不起作用 我看过了。看起来您的实例化参数太多或太少。我可以看看你的构造函数吗? 请不要发布猜测作为答案。 正如我所说的我不熟悉这些词,请原谅我的无知,但究竟什么是构造函数?? 如果您发布随机想法,您将无济于事(除了已经发布了相同答案的事实)。要给出正确的答案,等到你确定你所说的能解决问题以上是关于Android - 片段中的适配器问题的主要内容,如果未能解决你的问题,请参考以下文章