我遇到的问题使我整夜哭泣。我正在尝试创建显示漫画页面的程序。我已按照教程进行操作,但是遇到错误消息Cannot resolve symbol CustomSwipeAdapter。支持v4。库已导入...

我试过:清理/重建
         使Chaches无效/重新启动
         分别安装了Android Studio 1.4和1.5。
         删除IML。项目和.idea文件夹中的文件

代码在这里:

package com.example.zlo.berserk;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.ViewParent;

public class volume1 extends AppCompatActivity {

    ViewPager viewPager;
    CustomSwipeAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_volume1);
        viewPager = (ViewPager)findViewById(R.id.viewpager);
        adapter = new CustomSwipeAdapter(this);
        viewPager.setAdapter(adapter);


任何想法 ?

最佳答案

这是因为代码中不存在CustomSwipeAdapter类。要使用给定名称创建新类,请将一个文件添加到项目中,并将其命名为“ CustomSwipeAdapter”。
现在,将此代码添加到该文件中,

public class CustomSwipeAdapter extends PagerAdapter {

public int getCount() {
  return 3;
}
public Object instantiateItem(ViewGroup collection, int position) {
  LayoutInflater inflater = (LayoutInflater) collection.getContext()
   .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  int resId = 0;
  switch (position) {
       case 0:
           resId = R.layout.swipe1;
           break;
       case 1:
           resId = R.layout.swipe2;
           break;
       case 2:
           resId = R.layout.swipe3;
           break;
   }
  View view = inflater.inflate(resId, null);
  ((ViewPager) collection).addView(view, 0);
  return view;
 }

 @Override
 public void destroyItem(ViewGroup arg0, int arg1, Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);
   }

 @Override
 public boolean isViewFromObject(View arg0, Object arg1) {
      return arg0 == ((View) arg1);
 }

 //public boolean isViewFromObject(ViewGroup arg0, Object arg1) {
 // return arg0 == ((View) arg1);
 //}

 @Override
 public Parcelable saveState() {
 return null;
 }
}


扩展PagerAdapter类时,请确保创建一些关键方法,例如getCount();。定义页面的大小。在我们的例子中是3。
另外,将实现instantiateItem()以根据滑动位置来膨胀适当的布局文件。为此,我们创建了一个开关盒,以使布局页面膨胀(swipe1,swipe2或swipe3)。

最后,您必须创建一个destroyItem()方法,以删除屏幕上显示时间更长的布局页面。此方法实际上将释放内存。

关于android - 无法解析CustomSwipeAdapter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33867229/

10-09 08:28