Рубрики
Без рубрики

Как я могу обновить пользовательский интерфейс Activity, используя лямбды для событий?

Поскольку я прошу: https://stackoverflow.com/q/67150195/4706711 У меня есть класс, в котором я предоставляю обратные вызовы… С пометкой “Справка”, android, java.

Как я прошу по поводу: Как я прошу по поводу:

У меня есть класс, который я предоставляю обратные вызовы через лямбды. Эти лямбды обеспечивают функциональность обратного вызова и обновляют пользовательский интерфейс Activity.

В двух словах у меня есть следующий класс:

class MyProcess extends Runnable{

   Callback callback;
   Callback exceptionCallback;   

   public function setCallback(Callback callback){this.callback=callback;}

   public function setExceptionCallback(Callback callback){this.exceptionCallback = callback}

   public void doStuff()
   {
      try{
        // Some Logic there that performs Networking
        callback.call();
      }catch(Exception e){ exceptionCallback.call(e); }
   }

   public void run(){ this.doStuff(); }
}

И в своей деятельности я делаю следующее

 class MyActivity extends extends AppCompatActivity implements View.OnClickListener{
   MyProcess process;
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.my_activity);
       process = new MyProcess();
       process.setExceptionCallback((Exception e)->{                Log.e("MyApp",MyActivity.class+e.getMessage());
});
       Button submit = (Button)findViewById(R.id.connect_btn);
       submit.setOnClickListener(this);
       process.setCallback(()->{submit.setEnabled(true)});
  }
  @Override
  public void onClick(View v){

        Button submit = (Button)findViewById(R.id.connect_btn);
        submit.setEnabled(false);

        runOnUiThread(this.retriever);
    }
}

Но runOnUiThread не позволяет мне подключаться к сети. Поэтому, есть ли у вас какие-либо идеи о том, как я могу запустить поток, который выполняет сетевое взаимодействие;

Оригинал: “https://dev.to/pcmagas/how-i-can-update-the-activity-s-ui-using-lambdas-for-events-4970”