由于“方法未覆盖其超类的方法”错误,因此单击事件不起作用

SD826E

根据我的列表视图,由于click事件中的错误,我无法调试我的应用。我在其他问题中已经看到此错误,但答案与我的问题无关。我不确定是否缺少必要的代码。如何解决此错误?所有帮助将不胜感激。

弦乐

<string-array name="continent_names">
    //item 0    <item>@string/africa</item>
    //item 1    <item>@string/asia</item>
    //item 2    <item>@string/europe</item>
</string-array>

<string-array name="continent_descriptions">
    //item 0    <item>@string/africa_description</item>
    //item 1    <item>@string/asia_description </item>
    //item 2    <item>@string/europe_description </item>
</string-array>

FragmentWorld.java

    public class FragmentWorld extends ListFragment implements SearchView.OnQueryTextListener {

    private WorldListAdapter mAdapter;

    public FragmentWorld() {
        // Required empty constructor
    }

    public static FragmentWorld newInstance() {
        return new FragmentWorld();
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_world, container, false);
        setHasOptionsMenu(true);
        initialize(view);
        return view;
    }

    List<World> list = new ArrayList<World>();
    private void initialize(View view) {
        String[] items = getActivity().getResources().getStringArray(R.array.continent_names);
        String[] itemDescriptions = getActivity().getResources().getStringArray(R.array.continent_descriptions);
        for (int n = 0; n < items.length; n++){
            World world = new World();
            world.setID();
            world.setName(items[n]);
            world.setDescription(itemDescriptions[n]);
            list.add(world);
        }

        mAdapter = new WorldListAdapter(list, getActivity());
        setListAdapter(mAdapter);
    }

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                // get the adapter, then get the name from the adapter at that position
                WorldListAdapter adapter = (WorldListAdapter) parent.getAdapter();
                String country = adapter.getItem(position);

                if (mTwoPane) {
                    setItemNormal();
                    View rowView = view;
                    setItemSelected(rowView);

                    Fragment newFragment;
                    if (country.equals(view.getResources().getString(R.string.africa))) {
                        newFragment = new FragmentAfrica();
                    } else if (country.equals(view.getResources().getString(R.string.asia))) {
                        newFragment = new FragmentAsia();
                    } else if (country.equals(view.getResources().getString(R.string.europe))) {
                        newFragment = new FragmentEurope();
                    } else {
                        newFragment = new FragmentAfrica();
                    }
                    WorldActivity activity = (WorldActivity) view.getContext();
                    FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
                    transaction.replace(R.id.detail_container, newFragment);
                    transaction.commit();
                } else {
                    Intent intent;
                    if (country.equals(view.getResources().getString(R.string.africa))) {
                        intent = new Intent(getActivity(), AfricaActivity.class);
                    } else if (country.equals(view.getResources().getString(R.string.asia))) {
                        intent = new Intent(getActivity(), AsiaActivity.class);
                    } else if (country.equals(view.getResources().getString(R.string.europe))) {
                        intent = new Intent(getActivity(), EuropeActivity.class);
                    } else {
                        intent = new Intent(getActivity(), AfricaActivity.class);
                    }
                    startActivity(intent);
                }
            }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // Set up search view
        inflater.inflate(R.menu.menu_world, menu);
        MenuItem item = menu.findItem(R.id.action_search);
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
        searchView.setIconifiedByDefault(true);
        searchView.clearAnimation();
        searchView.setOnQueryTextListener(this);
        searchView.setQueryHint(getResources().getString(R.string.search_hint));

        View close = searchView.findViewById(R.id.search_close_btn);
        close.setBackgroundResource(R.drawable.ic_action_content_clear);
    }

    @Override
    public boolean onQueryTextSubmit(String newText) {
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        mAdapter.getFilter().filter(newText);
        return false;
    }
}

WorldListAdapter.java

public class WorldListAdapter extends BaseAdapter implements Filterable {

    private List<World> mData;
    private List<World> mFilteredData;
    private LayoutInflater mInflater;
    private ItemFilter mFilter;

    public WorldListAdapter (List<World> data, Context context) {
        mData = data;
        mFilteredData = new ArrayList(mData);
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

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

    @Override
    public String getItem(int position) {
        return mFilteredData.get(position).getName();
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder;
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.list_item_dualline, parent, false);
            holder = new ViewHolder();

            holder.title = (TextView) convertView.findViewById(R.id.item_name);
            holder.description = (TextView) convertView.findViewById(R.id.item_description);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.title.setText(mFilteredData.get(position).getName());
        holder.description.setText(mFilteredData.get(position).getDescription());

        return convertView;
    }

    @Override
    public Filter getFilter() {
        if (mFilter == null) {
            mFilter = new ItemFilter();
        }
        return mFilter;
    }

    /**
     * View holder
     */
    static class ViewHolder {
        private TextView title;
        private TextView description;
    }

    private class ItemFilter extends Filter {
        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults results = new FilterResults();

            if (TextUtils.isEmpty(constraint)) {
                results.count = mData.size();
                results.values = new ArrayList(mData);
            } else {
                //Create a new list to filter on
                List<World> resultList = new ArrayList<World>();
                for (World str : mData) {
                    if (str.getName().toLowerCase().contains(constraint.toString().toLowerCase())) {
                        resultList.add(str);
                    }
                }
                results.count = resultList.size();
                results.values = resultList;
            }
            return results;
        }


        @SuppressWarnings("unchecked")
        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {
            if (results.count == 0) {
                mFilteredData.clear();
                notifyDataSetInvalidated();
            } else {
                mFilteredData = (ArrayList<World>)results.values;
                notifyDataSetChanged();
            }
        }
    }
}

错误

方法不覆盖其超类的方法

斯威德·谢伦斯(Sweder Schellens)

ListFragment没有onItemClick()方法。它有一种onListItemClick方法。将第一个参数从更改AdapterView<?> parentListView parent

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:方法未覆盖或从超类型实现方法

来自分类Dev

覆盖超类中的方法

来自分类Dev

OCMock类方法不起作用

来自分类Dev

PreferenceActivity中的isValidFragment“方法不会覆盖其超类的方法”

来自分类Dev

WPF按钮单击事件不起作用

来自分类Dev

使用超类引用时方法重载不起作用

来自分类Dev

jQuery单击事件不起作用

来自分类Dev

由于没有参考,KeyPress方法不起作用

来自分类Dev

模拟修补的类方法不起作用

来自分类Dev

unset()在类方法内部不起作用

来自分类Dev

类更改后,单击事件处理程序不起作用

来自分类Dev

supportedInterfaceOrientations方法不会覆盖其超类中的任何方法

来自分类Dev

方法不会覆盖其超类swift 3.0错误中的任何方法

来自分类Dev

覆盖方法似乎不起作用

来自分类Dev

从超类调用方法不起作用的Java

来自分类Dev

如何在Swift上使用UITextViewDelegate修复Method不会从其超类错误中覆盖任何方法?

来自分类Dev

JPanel覆盖方法不起作用

来自分类Dev

Selenium Webdriver:由于未知的返回类型,可重用的xml解析类方法不起作用

来自分类Dev

反向类方法不起作用

来自分类Dev

单击事件上的Listview不起作用

来自分类Dev

util类的复制方法不起作用

来自分类Dev

jQuery的单击事件添加类不起作用

来自分类Dev

方法不会覆盖其超类中的任何方法

来自分类Dev

错误:方法未覆盖或从超类型实现方法

来自分类Dev

密谋按钮单击事件不起作用

来自分类Dev

Angular 2 单击事件不起作用

来自分类Dev

方法不会从其超类 swift 覆盖

来自分类Dev

单击事件在 dcmads 上不起作用

来自分类Dev

单击事件:switch 语句不起作用

Related 相关文章

热门标签

归档