【问题标题】:Android - Adapters in fragments issueAndroid - 片段中的适配器问题
【发布时间】: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的构造函数
  • 参数可能与构造函数不匹配

标签: java android fragment adapter


【解决方案1】:

您已经在constuctor 中创建了这个没有参数的ValueAdapterEn 类,因为我猜日志消息在那里显示。您如何在class 中传递参数。请同时发布您的相关代码以获得更多帮助和在深入挖掘一些android 代码之前先学习core-java。您可以从thisthis 了解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】:

你必须通过 contextgetActivity() 而不是 this

【讨论】:

  • 我添加了 LogCat,请花点时间查看它,我尝试了 getActivity() 但它不起作用
  • 我认为您没有使用这些参数声明构造函数
  • 请不要发布猜测作为答案。
  • 我添加了构造函数
【解决方案4】:

我还不允许发表评论,但我猜那里的适配器需要一个上下文,您正试图将它传递给第二个参数。片段不是有效的上下文。使用getActivity() 而不是this

【讨论】:

  • 我添加了 LogCat,请花点时间查看它,我尝试了 getActivity() 但它不起作用
  • 我看过了。看起来您的实例化参数太多或太少。我可以看看你的构造函数吗?
  • 请不要发布猜测作为答案。
  • 正如我所说的我不熟悉这些词,请原谅我的无知,但究竟什么是构造函数??
  • 如果您发布随机想法,您将无济于事(除了已经发布了相同答案的事实)。要给出正确的答案,等到你确定你所说的能解决问题
猜你喜欢
  • 2018-09-14
  • 2014-08-13
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 2019-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多