Android - 在SimpleAdapter上隐藏键盘

时间:2015-10-03 16:09:53

标签: android

我创建了一个简单的适配器,以便对我的自动完整文本视图进行成本化,并且当用户点击自动完成文本时,我想隐藏键盘。

我已经创建了一个隐藏键盘的功能,但我在SimpleAdapter上使用它时遇到了一些问题,我只需要获取当前活动来调用该功能。

隐藏键盘功能:

public static void hideSoftKeyboard(Activity activity) {
        InputMethodManager inputMethodManager = (InputMethodManager) activity
                .getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus()
                .getWindowToken(), 0);
    }

SimpleAdapter代码:

public class ACAdapter extends SimpleAdapter {

    Context context;

    public ACAdapter(Context context, List<? extends Map<String, ?>> data,
            int resource, String[] from, int[] to) {
        super(context, data, resource, from, to);
        // TODO Auto-generated constructor stub
    }

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

        View v = super.getView(position, convertView, parent);

        final String id = (String) ((Map) getItem(position))
                .get(EventsFragment.ITEM_SECTIONID);

        v.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                GetSpots task = new GetSpots();
                task.execute(id);

                EventsFragment.refresh = false;

                EventsFragment.loading_bg.setVisibility(View.VISIBLE);

                hideSoftKeyboard(context.getActivity());

            }

        });

        return v;

    }

}

所以,我尝试使用&#34; context.getActivity&#34;但是没有用,我收到了这个警告:

The method getActivity() is undefined for the type Context

有没有办法做我想做的事?

1 个答案:

答案 0 :(得分:0)

尝试将您的上下文转换为活动

类型
hideSoftKeyboard((Activity)context);