2016-10-07 2 views
-7

Это код для андроидной активности, которую я хочу запустить, если это вообще возможно, без создания нового действия. Необходимо избавиться от функции Listener. Я попытался создать новый класс java, но это дало мне ошибку в функциях putExtra. Также как я могу разобраться с экземпляром newConnection внутри конструктора Listener.Я пытаюсь запустить код внутри onMenuItemClick(), не нажимая кнопку меню

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

Все, что я могу видеть, это конструктор, который присваивает его значение параметра члену класса. Что за вопрос? – f1sh

+0

Конструктор, который инициализирует переменную newConnection. На что собственно вопрос? –

+0

Просьба уточнить ваш вопрос относительно того, что вы на самом деле спрашиваете – Blip

ответ

0

Это базовый конструктор в качестве слушателя парадигмы. Основная идея в компьютерной науке заключается в том, что код должен быть повторно использован, и для облегчения этого кода, как правило, должен быть автономным. Это часто делается в Java со слушателем. Обычно это абстрактный класс или интерфейс, который имеет несколько функций набора. Основному классу, который использует слушатель, присваивается этот объект или объекты, и когда он достигает соответствующей точки, он будет вызывать прослушиватель, чтобы уведомить ваш код о событии.

Это позволяет людям писать код, который полностью содержит и по-прежнему предоставляет крючки событий, в соответствии с которыми другой пользователь, который использует этот код, может получать обратную связь, например, когда нажата кнопка меню или создается новое соединение, и с этим связано человек, использующий этот код, но без автора оригинального класса, зная что-либо о вашем коде. Он позволяет создавать такие вещи, как меню и диспетчеры подключений и кнопки, которые не имеют никакого отношения к коду, который они запускают, по дизайну. Так что любое количество из них может быть сделано и использовано.

Смежные вопросы