我试图在没有按菜单按钮的情况下运行onMenuItemClick()内的代码

时间:2016-10-07 10:04:37

标签: java android android-studio

这是我想要运行的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);

1 个答案:

答案 0 :(得分:0)

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

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