当前位置: 首页 > 知识库问答 >
问题:

Arrayadapter无法解析构造函数:找不到合适的构造函数,实际参数和正式参数的长度不同

唐向荣
2023-03-14

我到处找,但找不到解决我问题的办法。我是新来Java的,我正在尝试建立一个app,但由于某种原因我过不了这个问题。我得到这个错误:

错误:(68,33)错误:找不到ArrayAdapter(OneFragment,int,String[])的合适构造函数构造函数ArrayAdapter.ArrayAdapter(Context,int,int,List)不适用(实际参数列表和正式参数列表的长度不同)构造函数ArrayAdapter.ArrayAdapter(Context,int,int,String[])不适用(实际参数列表和正式参数列表的长度不同)构造函数ArrayAdapter.ArrayAdapter(Context,int,String[])不适用(实际参数列表不能通过方法调用转换转换为上下文)构造函数ArrayAdapter.ArrayAdapter(Context,int,String[])不适用(实际参数列表不能通过方法调用转换转换为上下文)ArrayAdapter.ArrayAdapter(Context,int,String[])不

代码(OneFragment.java):

package memo.javahelps.com.hanzesoep;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class OneFragment extends Fragment{

    ListView list;
    String[] itemname = {
            "Kippensoep",
            "Tomatensoep",
            "Thaise Kippensoep"
    };

    Integer[] imgid = {
            R.mipmap.kippensoep,
            R.drawable.tomatensoep,
            R.drawable.thaisekip,
    };

    public OneFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_one, container, false);

        CustomListAdapter adapter = new CustomListAdapter(getActivity(), itemname, imgid);

        list=(ListView) rootView.findViewById(R.id.list);
        list.setAdapter(adapter);


        return rootView;



        /* op item klikken */


        ArrayAdapter adapter2 = new ArrayAdapter<String>(OneFragment.this,
                R.layout.list_item, itemname);

        list.setAdapter(adapter2);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                switch (position) {
                    case 0:
                        Intent newActivity = new Intent(OneFragment.this.getActivity(), Kippensoep.class);
                        startActivity(newActivity);
                        break;


                }

            }
        });

}


    }

我正在尝试使用ArrayAdapter在可单击的listview中获取单独的项。有人能帮我吗?我做错了什么?

共有1个答案

燕禄
2023-03-14

与构造函数调用最相似的ArrayAdapter构造函数ArrayAdapter.ArrayAdapter(Context,int,String[]),但它不适用,因为实际参数一个框架不能通过方法调用转换转换为上下文

这里

    ArrayAdapter adapter2 = new ArrayAdapter<String>(OneFragment.this,
            R.layout.list_item, itemname);

您正在将fragment实例传递给ArrayAdapter,其中需要Context。您应该传递附带的activity:

    ArrayAdapter adapter2 = new ArrayAdapter<String>(getActivity(),
            R.layout.list_item, itemname);

此外,Return RootView;应该是OnCreateView方法中的最后一条语句。否则,后面的代码将不可访问。

 类似资料:
  • 我开始学习Java,遇到了一个我无法解决的问题。我有一个名为MyClass的类,带有构造函数。我想将该构造函数设置为访问私有字段: 当我删除构造函数时,我可以从另一个类调用somethingElse。然而,当我沿着这条路线尝试一些东西时 我在data=new MyClass()处得到一个错误,即实际参数和形式参数的长度不同,并且“需要long,found no参数”。我该如何解决这个问题?

  • 所以我接到了一个任务,我必须在一段有点大而草率的代码中查找并修复许多错误。我只剩下最后一个了,我找不到解决这个问题的办法。我读过类似的场景,人们会犯同样的错误,但我无法将它们与我的代码联系起来。这就是我得到错误的地方:

  • 我不明白为什么它会给我一个错误代码,找不到合适的构造函数。 怎么了?

  • 问题内容: 大家好,我正在尝试在选项卡中列出文本数据,这是我的方法 无法解析构造函数ArrayAdapter 的方法,这是我的主要活动。任何帮助将不胜感激,我仍然是一个noobie 。 问题答案: 更改 至 你可以在使用。

  • 我在运行代码时得到了这个错误,我在跟踪treehouse Build a blog reader android应用程序,现在我得到了这个错误 错误:(120,52)错误:找不到适合ArrayAdapter(MainListActivity.GetBlogPostStask,int,String[])的构造函数ArrayAdapter.ArrayAdapter(Context,int,int)不适

  • 我一直在拼命地尝试让这段代码工作。这是我第一次使用对象/构造函数(我是一个新程序员),这让我很困惑。我完全诚实;我不知道问题是什么。我已经尝试了很多东西,所以这段代码相当混乱。我也受够了,重新开始制作第二个代码,它也因为与第一个代码相同的原因而不起作用,尽管该代码的结构略有不同。我将在下面发布这两次尝试,希望有人能看到我的错误。谢谢! 尝试1: 尝试2: 任何帮助都将不胜感激。此外,因为我认为我的