簡體   English   中英

片段不是抽象的,並且不會覆蓋抽象方法

[英]Fragment is not abstract and does not override abstract method

我在類中有一個Fragment,因為它是ViewPager的一部分。 但是,在我的外部類中,我正在從NavigationDrawer的第三方庫中實現OnItemClickListener。 但是在內部類中,我有一個OnItemClickListener,它是Android SDK接口。 但是由於未能實現我實際上已經實現的onItemClick方法而給我一個錯誤。

內部類的實現:

public static class AllFragment extends Fragment implements AdapterView.OnItemClickListener

onItemClick方法的實現:

        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View v,
                    int position, long arg3) {
                String selectedItem;
                if (position % 2 == 0)
                    selectedItem = "Facebook";
                else
                    selectedItem = "Twitter";
                Toast.makeText(getActivity(),
                        "Selected Item: " /*+ GridViewCustomAdapter.titles.get(position)*/,
                        Toast.LENGTH_SHORT).show();
                Intent showItem = new Intent(getActivity(), ShowAdvert.class);
                showItem.putExtra("objectId", objectIdList.get(position));
                startActivity(showItem);

            }
        });

錯誤:

Error:(327, 16) error: AllFragment is not abstract and does not override abstract method onItemClick(AdapterView<?>,View,int,long) in OnItemClickListener

如果我不寫new AdapterView.OnItemClickListener()而是寫new OnItemClickListener() ,它將從我不感興趣的外部類中調用OnItemClickListener。順便說一句,外部類的開始看起來像這樣:

public class MainActivity extends NavigationLiveo implements
    br.liveo.interfaces.OnItemClickListener {

為什么會出現此錯誤?

之所以收到此錯誤,是因為您使片段類實現了偵聽器,但沒有實現它的方法。

您應該將該方法作為片段類中的方法覆蓋,或者,您可以簡單地刪除您的片段類的實現,因為您已經在匿名類中覆蓋了該方法。

public static class AllFragment extends Fragment implements AdapterView.OnItemClickListener {

    // constructor and methods
    // ...

    @Override
    public void onItemClick(AdapterView<?> arg0, View v,
                int position, long arg3) {
        // your implementation
    }
}

然后將偵聽器分配給GridView

gridView.setOnClickListener(this)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM