我到处搜索,但无法找到解决问题的方法。我是java的新手,我正在尝试构建应用,但出于某种原因,我无法解决这个问题。我收到这个错误:
错误:(68,33)错误:找不到合适的构造函数 ArrayAdapter(OneFragment,int,String [])构造函数 ArrayAdapter.ArrayAdapter(Context,int,int,List)不是 适用的(实际和正式的参数列表长度不同) 构造函数ArrayAdapter.ArrayAdapter(Context,int,List)不是 适用(实际参数OneFragment无法转换为Context 通过方法调用转换)构造函数 ArrayAdapter.ArrayAdapter(Context,int,int,String [])不适用 (实际和形式参数列表的长度不同)构造函数 ArrayAdapter.ArrayAdapter(Context,int,String [])不适用 (实际参数OneFragment无法通过方法转换为Context 调用转换)构造函数 ArrayAdapter.ArrayAdapter(Context,int,int)不适用(实际 参数OneFragment无法通过方法转换为Context 调用转换)构造函数 ArrayAdapter.ArrayAdapter(Context,int)不适用(实际和 正式参数列表的长度不同)
代码(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中单独获取单独的项目。谁能帮我?我做错了什么?
答案 0 :(得分:1)
与您的构造函数调用最相似的ArrayAdapter
构造函数是ArrayAdapter.ArrayAdapter(Context,int,String[])
,但它不适用于actual argument OneFragment cannot be converted to Context by method invocation conversion
。
下面
ArrayAdapter adapter2 = new ArrayAdapter<String>(OneFragment.this,
R.layout.list_item, itemname);
您正在将Fragment
个实例传递到需要ArrayAdapter
的{{1}}。您应该通过封闭的Context
代替:
Activity
此外, ArrayAdapter adapter2 = new ArrayAdapter<String>(getActivity(),
R.layout.list_item, itemname);
应该是return rootView;
方法中的最后一个语句。否则,它后面的代码将无法访问。