无法解析构造函数ArrayAdapter(android.Content.Context,int,java.util.ArrayList )
我知道这个问题之前已被问过一百万次,但我已经尝试了所有可以找到的解决方案,但仍然无效。 我曾尝试将“this”称为上下文,我尝试过getActivity,我尝试过getContext(),但似乎没有任何东西可以用于此片段。 相同的代码在不同的片段中工作,这就是为什么我真的很困惑。 任何帮助赞赏。
我的LoginFragment,我的问题可以在setReservations()中找到:
public class LoginFragment extends Fragment { LoginButton loginButton; TextView nameText; ProfileTracker mProfileTracker; DBHandler dbHandler; Context context; ArrayList reservations; ListView lv; Profile fbProfile; CallbackManager callbackManager; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.login, container, false); callbackManager = CallbackManager.Factory.create(); dbHandler = new DBHandler(getContext(), null, null, 1); context = getActivity(); loginButton = (LoginButton) view.findViewById(R.id.login_button); nameText = (TextView) view.findViewById(R.id.users_name); loginButton.setReadPermissions("email"); setmProfileTracker(); mProfileTracker.startTracking(); // If using in a fragment loginButton.setFragment(this); // Other app specific specialization // Callback registration loginButton.registerCallback(callbackManager, new FacebookCallback() { @Override public void onSuccess(LoginResult loginResult) { } @Override public void onCancel() { // App code } @Override public void onError(FacebookException exception) { // App code } }); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); fbProfile = Profile.getCurrentProfile(); if (fbProfile != null) { updateUI(); } getActivity().setTitle("My page"); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode,resultCode,data); } private void setmProfileTracker() { mProfileTracker = new ProfileTracker() { @Override protected void onCurrentProfileChanged(Profile profile, Profile profile2) { updateUI(); //this is the third piece of code I will discuss below } }; } private void updateUI() { boolean enableButtons = AccessToken.getCurrentAccessToken() != null; if (fbProfile == null) { fbProfile = Profile.getCurrentProfile(); Log.e("Profile", "null"); } if (enableButtons && fbProfile != null) { Log.e("Access Token", AccessToken.getCurrentAccessToken().toString()); nameText.setText(fbProfile.getName()); } } private void setReservations() { reservations = dbHandler.userReservationToArrayList(parseLong(fbProfile.getId())); lv = (ListView) getView().findViewById(R.id.reservations); ArrayAdapter arrayAdapter = new ArrayAdapter( context, android.R.layout.simple_list_item_1, reservations); lv.setAdapter(arrayAdapter); } }
编辑:代码格式
您可能应该了解有关generics和类型安全性的更多信息。
您的reservations
类型为ArrayList
但您尝试创建ArrayAdapter
,这是错误的。 将其更改为ArrayAdapter
。
您的arrays适配器属于Type Review
ArrayAdapter arrayAdapter
但是你的传球:
ArrayList reservations Change it to ArrayAdapter
您应该传递一个Review
数组而不是一个Reservation
数组。 因此,将适配器更改为ArrayAdapter
。
此外,在您调用onCreateView()
getActivity()
方法内的getActivity()
方法时,您的Activity
尚未创建,这可能会导致错误。 要解决此问题,您应该将此行移至onActivityCreated()
:
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); context = getActivity(); }
- jni调用java方法,该方法将自定义java接口作为参数
- java.lang.NullPointerException:尝试在空对象引用上调用虚方法’boolean java.lang.String.equals(java.lang.Object)’
- 如何使用Picasso库正确实现带图像的自定义列表视图?
- LibGDX没有使用Android资源文件夹
- 在android中实现三角测量
- Android 64k方法限制56k方法的错误
- 无论屏幕方向如何,如何获得正确的方位(磁方向)?
- Android – 通过DDMS分析特定线程(UI线程)
- Android和PhoneGap – NPObject上的错误调用方法