我遇到的问题使我整夜哭泣。我正在尝试创建显示漫画页面的程序。我已按照教程进行操作,但是遇到错误消息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/