我正在尝试在不按菜单按钮的情况下运行 onMenuItemClick() 中的代码

Posted

技术标签:

【中文标题】我正在尝试在不按菜单按钮的情况下运行 onMenuItemClick() 中的代码【英文标题】:I am trying to run the code inside the onMenuItemClick() without pressing the menu button 【发布时间】:2017-02-16 07:10:21 【问题描述】:

这是我想要运行的 android 活动的代码,如果可能的话,无需创建新活动。需要去掉Listener功能。我试图创建一个新的 java 类,但它在 putExtra 函数上给了我错误。另外,我该如何处理 Listener 构造函数中的 newConnection 实例。

public class NewConnection extends Activity 

  private Bundle result = null;

  @Override
  protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);

  private class Listener implements OnMenuItemClickListener 

    //used for starting activities 
    private NewConnection newConnection = null;

    public Listener(NewConnection newConnection)
    
      this.newConnection = newConnection;
    

尝试在不点击的情况下运行下面的代码:

    @Override
    public boolean **onMenuItemClick**(MenuItem item) 
      
        // this will only connect need to package up and sent back
        Intent dataBundle = new Intent();

              String server = ("tsp//:server address");
              String port = ("1823");
              //put data into a bundle to be passed back to ClientConnections
            dataBundle.putExtra(ActivityConstants.server, server);
            dataBundle.putExtra(ActivityConstants.port, port);

              ...

              ...

            //add result bundle to the data being returned to ClientConnections
            dataBundle.putExtras(result);

            setResult(RESULT_OK, dataBundle);
            newConnection.finish();

        
        return false;

      

这是用于调用活动的代码:

           createConnection = new Intent();
createConnection.setClassName(
    clientConnections.getApplicationContext(),
    "org.eclipse.paho.android.service.sample.NewConnection");

clientConnections.startActivityForResult(createConnection,
    ActivityConstants.connect);

【问题讨论】:

我所看到的只是一个构造函数,它将其参数值分配给类成员。有什么问题? 初始化 newConnection 变量的构造函数。究竟是什么问题? 请澄清您的实际问题 对不起,我是 java 新手。问题是如果这段代码在 NewConnection 类中,我是否在当前实例中创建了另一个 NewConnection 实例?那么 this.newConnection = newConnection;那在做什么?在此先感谢您帮助菜鸟:P 【参考方案1】:

这是侦听器范例中的基本构造函数。代码应该是可重用的,这是计算机科学中的一个核心思想,并且为了促进这些代码通常需要是自包含的。这通常在 Java 中通过侦听器完成。它通常是一个抽象类或具有几个集合函数的接口。使用侦听器的主类被分配了这个或多个对象,当它到达相关点时将触发侦听器通知您的代码事件。

这允许人们编写完全包含的代码,并且仍然提供事件挂钩,从而使使用该代码的其他用户可以获得反馈,例如单击菜单项或建立新连接时,并由使用此代码的人,但原始类的作者对您的代码一无所知。通过设计,它允许菜单和连接管理器以及与它们触发的代码无关的按钮之类的东西。这样就可以制造和使用任意数量的这些。

【讨论】:

以上是关于我正在尝试在不按菜单按钮的情况下运行 onMenuItemClick() 中的代码的主要内容,如果未能解决你的问题,请参考以下文章

颤振:如何在不按按钮的情况下进行列表视图更新?

我可以在不按任何选择按钮的情况下从我的 uipickerview 行的值自动更新我的 uitextview 吗?

如何在不按下按钮的情况下自动处理 <textarea> 的内容?

如何在不破坏“菜单”按钮默认行为的情况下在 tvOS 游戏中设置主菜单

如何在不单击后退按钮的情况下隐藏键盘[重复]

如何在不单击按钮的情况下运行 onCreate() 中的方法