【问题标题】:Cannot resolve symbol "LayoutInflater inflater,ViewGroup container"无法解析符号“LayoutInflater inflater,ViewGroup 容器”
【发布时间】:2015-09-21 07:40:05
【问题描述】:

当我在“onoptionsitemselected”中调用“displayEventInvitationList(LayoutInflater inflater,ViewGroup container)”之类的方法时,我有一个方法“displayEventInvitationList”,该方法具有参数“inflater,container”,我收到错误无法解析符号“inflater,container "。请给我建议如何解决该问题的代码。

 public boolean onOptionsItemSelected(MenuItem item) {
        Log.d("onOptionsItemSelected", "yes");

        switch (item.getItemId()) {
            case R.id.all:
                //I am getting "cannot resolve symbol" here  
                displayEventInvitationList(LayoutInflater inflater,ViewGroup container); 
                return true;
            case R.id.event:
                displayEventList();
                return true;
            case R.id.invitation:
                displayInvitationList();
                return true;
            default:
                return super.onOptionsItemSelected(item);

        }

    }
public View displayEventInvitationList(LayoutInflater inflater, ViewGroup container) {
        context = getActivity().getApplicationContext();
        view = inflater.inflate(R.layout.chatwindow_tab, container, false);
        sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
                Context.MODE_PRIVATE);
        DatabaseHelper dbHelper = new DatabaseHelper(context);
        final UserMO userMO = dbHelper.getRingeeUserData(1);
        new AsyncTask<Void, Void, List<EventMO>>() {
            @Override
            protected List<EventMO> doInBackground(Void... arg0) {
                eventMOs = gson.fromJson(eventDelegates.getAllEventFromUser(userMO, context), new TypeToken<List<EventMO>>() {
                }.getType());
                invitationMOs = gson.fromJson(eventDelegates.getAllEventForUser(userMO, context), new TypeToken<List<EventMO>>() {
                }.getType());
                List<EventMO> groupEventInvitesList = new ArrayList<>();

                for (EventMO eventMO : eventMOs) {
                    groupEventInvitesList.add(eventMO);

                }
                for (EventMO eventMO : invitationMOs) {
                    groupEventInvitesList.add(eventMO);

                }

                return groupEventInvitesList;

            }

            @Override
            protected void onPostExecute(List<EventMO> groupEventInvitesList) {
                groupEventMoList = groupEventInvitesList;
                chatDisplayAdapter = new ChatDisplayAdapter();
                groupEventView.setAdapter(chatDisplayAdapter);
                groupEventView.setAdapter(dataAdapter);
                groupEventView.setItemsCanFocus(true);
                groupEventView.setTextFilterEnabled(true);
                groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
            }
        }.execute(null, null, null);
        return view;
    }

【问题讨论】:

  • 你必须传递这两个参数。
  • 在 onoptionsitemselected 中传递这两个参数时出现错误。
  • 你必须创建对象并传递它。这样你就不会出错了。
  • @pselvasimon 您没有传递任何参数。您应该研究“方法调用”和“方法声明”之间的区别。前者接受“参数”,后者接受“参数”。
  • 你能告诉我在哪里创建对象吗?

标签: java android


【解决方案1】:

根据我的评论,问题在于您没有为方法调用提供任何参数:

displayEventInvitationList(LayoutInflater inflater,ViewGroup container);

如果您扩展 Fragment 以创建此类,则一种选择是存储来自 onCreateViewLayoutInflaterViewGroup 参数。您可以将它们保存到类变量中并在onOptionsItemSelected 中使用它们。

//Class Variables
LayoutInflater inflater;
ViewGroup container;
//...
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    this.inflater = inflater;
    this.container = container;
}

//And in onOptionsItemSelected...
displayEventInvitationList(inflater, container);

否则,您将需要找到一种方法来访问适当的 LayoutInflaterViewGroup 对象以用作参数。 LayoutInflater 相对简单(即LayoutInflater li = LayoutInflater.from(context);),但您需要访问正确的ViewGroup 才能呈现任何布局和小部件。

此外,您构建方法调用的方式意味着您在方法调用/声明方面不了解 Java 基础知识,这对于了解 Android 非常重要。因此,我还建议您花一些时间熟悉它们。

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 2015-03-04
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多