错误:更新的Andr​​oid Studio之后没有合适的构造从0.6.1至0.8.9 [英] Error: no suitable constructor after update Android Studio from 0.6.1 to 0.8.9

查看:254
本文介绍了错误:更新的Andr​​oid Studio之后没有合适的构造从0.6.1至0.8.9的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个错误:

Error:(78, 56) error: no suitable constructor found for ImageViewTouch(Viewpager_activity)
constructor ImageViewTouch.ImageViewTouch(Context,AttributeSet,int) is not applicable
(actual and formal argument lists differ in length)
constructor ImageViewTouch.ImageViewTouch(Context,AttributeSet) is not applicable
(actual and formal argument lists differ in length)

但这个错误我后,才更新的Andr​​oid工作室出来后,从0.6.1到0.8.9,我没那个错误升级之前,事实上,code,我把下面的更新之前,完美地工作。
至多,我有对的Nexus 5的code中的应用,并没有任何问题。



Viewpager_layout.xml

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:background="#00A600"
        android:id="@+id/layoutesterno">

        <com.ruar.imagegallery.app.ImageViewTouchViewPager
            android:id="@+id/imagepager"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@+id/relativeLayout" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:layout_gravity="bottom"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:id="@+id/relativeLayout"
            android:background="#008A00">

            <ImageButton
                android:layout_width="60dp"
                android:layout_height="fill_parent"
                android:id="@+id/saveBtn"
                android:background="@drawable/save"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <ImageButton
                android:layout_width="60dp"
                android:layout_height="62dp"
                android:id="@+id/shareBtn"
                android:background="@drawable/share"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:layout_centerInParent="true"
                android:layout_alignTop="@+id/saveBtn"/>

            <ImageButton
                android:layout_width="70dp"
                android:layout_height="62dp"
                android:id="@+id/setasBtn"
                android:background="@drawable/setaswallpaper"
                android:layout_alignTop="@+id/saveBtn"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true" />

        </RelativeLayout>

    <ImageButton
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/info"
        android:background="@drawable/info"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <ImageButton
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/bugimg"
        android:background="@drawable/bug"
        android:layout_below="@+id/info"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="20dp"
        android:layout_alignLeft="@+id/info"
        android:layout_alignStart="@+id/info" />

</RelativeLayout>




Viewpager_activity.java

public class Viewpager_activity extends Activity
{
    int position;
    int img_id;
    Grid_adapter grid_adapter;
    String nomeimmagine;
    int i;
    final List<ImageViewTouch> images = new ArrayList<ImageViewTouch>();
    public static  String[][] galleryArrayThumb = ImmaginiThumb.thumbs;

        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.viewpager_layout);

            ImageLoader_Grid imageLoader = new ImageLoader_Grid(this.getApplicationContext());

            final Intent intent = getIntent();
            img_id = (Integer) intent.getExtras().get("img");
            position = (Integer) intent.getExtras().get("id");

            grid_adapter = new Grid_adapter(this, galleryArrayThumb[img_id]);
            nomeimmagine = LazyAdapter.titoli[img_id];
            setTitle(nomeimmagine);

            for (i = 0; i < grid_adapter.getCount(); i++)
            {
                 final ImageViewTouch imageViewTouch = new ImageViewTouch(this);

                 Picasso.with(Viewpager_activity.this)
                        .load(galleryArrayThumb[img_id][i])
                        .fit()
                        .centerInside()
                        .placeholder(R.drawable.loading)
                        .into(imageViewTouch);

                //imageLoader.DisplayImage(galleryArrayThumb[img_id][i], imageViewTouch);
                images.add(imageViewTouch);
            }

            ViewPager viewPager = (ImageViewTouchViewPager) findViewById(R.id.imagepager);
            viewPager.setAdapter(new Viewpager_adapter(images));
            viewPager.setCurrentItem(position);
            viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
            {
                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
                {
                    try
                    {
                        trimCache(Viewpager_activity.this);
                        Log.i("VP_cache", "Cache liberata");
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();

                    }
                }

                @Override
                public void onPageSelected(int position1) {
                    position = position1;
                }

                @Override
                public void onPageScrollStateChanged(int state) {}
            });
}//fine viewpager_activity




该错误是在该行和列是有写本,就是ImageViewTouch语境中的:



The error is in this line and the column is where there is written "this", that is, the contex of ImageViewTouch:

final ImageViewTouch imageViewTouch = new ImageViewTouch(this);

我试过也是这些codeS:

I've tried also these codes:

final ImageViewTouch imageViewTouch = new ImageViewTouch(Viewpager_activity.this);
final ImageViewTouch imageViewTouch = new ImageViewTouch(getApplicationContext());

但它不会改变任何东西,我仍然得到这个错误



其他错误是这样的:

Error:(36, 41) error: no suitable constructor found for ImageViewTouch(Context)
constructor ImageViewTouch.ImageViewTouch(Context,AttributeSet,int) is not applicable
(actual and formal argument lists differ in length)
constructor ImageViewTouch.ImageViewTouch(Context,AttributeSet) is not applicable
(actual and formal argument lists differ in length)



和Java code是这个


And the java code is this

Viewpager_adapter.java

public class Viewpager_adapter extends PagerAdapter
{
    private List<ImageViewTouch> imageViewTouches;

    public Viewpager_adapter(List<ImageViewTouch> imageViewTouches)
    {
        this.imageViewTouches = imageViewTouches;
    }

    @Override
    public int getCount() {
        return imageViewTouches.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position)
    {
        ImageViewTouch imageViewTouch = new ImageViewTouch(container.getContext());
        imageViewTouch = (ImageViewTouch) imageViewTouches.get(position);
        imageViewTouch.setScaleType(ImageViewTouch.ScaleType.MATRIX);

        container.addView(imageViewTouch);

        return imageViewTouch;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        ImageViewTouchViewPager pager = (ImageViewTouchViewPager) container;
        View recycledView = (View) object;
        pager.removeView(recycledView);
    }
}




和错误的路线是这样的:



And the line of error is this:

ImageViewTouch imageViewTouch = new ImageViewTouch(container.getContext());




更具体而言,在code字符串的这一部分:



And more specifically , this part of the code string:

new ImageViewTouch(container.getContext());



我更新Android工作室的一切工作顺利前重复。
由于提前,如果你需要其他的codeS把它们


I repeat before updating Android Studio everything worked smoothly. Thanks in advance, and if you need other codes put them

推荐答案

试试这个办法,希望这将帮助你解决你的问题。

在ImageViewTouch两级重载的构造函数定义如下:

In ImageViewTouch class two overloaded constructor define like :

ImageViewTouch(Context,AttributeSet) and ImageViewTouch(Context,AttributeSet,int)

和您正在尝试使用此构造中未ImageViewTouch类中定义初始化ImageViewTouch对象:

And your are trying to initialize ImageViewTouch object using this constructor which is not define in ImageViewTouch class:

ImageViewTouch(Context)

因此​​,尝试用一个重载的构造函数,如:

So try to use one overloaded constructor like :

new ImageViewTouch(container.getContext(),null,0) or  new ImageViewTouch(container.getContext(),null)

在ViewPager喜欢的:

In ViewPager like :

ImageViewTouch imageViewTouch = new ImageViewTouch(container.getContext(),null); or ImageViewTouch imageViewTouch = new ImageViewTouch(container.getContext(),null,0);

这篇关于错误:更新的Andr​​oid Studio之后没有合适的构造从0.6.1至0.8.9的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆