[英]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.