Как создать метод Intent - PullRequest
       2

Как создать метод Intent

0 голосов
/ 06 марта 2019

Есть ли способ создать базовый метод, который позволит мне создать намерение с несколькими параметрами.

public void setIntent(Class to, String key, String string) {
    Intent intent = new Intent(this, to);
    intent.putExtra(key, string);
    startActivity(intent);
}

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

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 марта 2019
   // Generalized method
   private void startActivityGeneral(final Class<? extends Activity> activityToOpen , Bundle parameters){
    Intent intent = new Intent(getBaseContext() , activityToOpen);
    for (String key : parameters.keySet()) {
        String params_key = key;
        String params_value = parameters.get(key).toString();
        // to bundle parameters based on type
        intent.putExtra(params_key ,params_value);
    }
    startActivity(intent);
}

    //Calling
    Bundle data = new Bundle();
    data.putString("key1" , "value1");
    data.putString("key2" , "value2");
    startActivityGeneral(Main2Activity.class , data);
    //startActivityGeneral(Main3Activity.class , data);

Для регулируемого количества дополнений с различными переменными - Используйте Bundle

0 голосов
/ 07 марта 2019

ваша идея верна, но вы должны передать nameActivity.class в качестве параметра

     setIntent(nameActivity.class,"key","hello");
      ************************************************
      public void setIntent(Class to, String key, String string) {
       Intent intent = new Intent(this, to);
       intent.putExtra(key, string);
        startActivity(intent);
0 голосов
/ 06 марта 2019

Вы можете создать что-то вроде этого.

public void setIntent() {
Intent intent = new Intent(YourActivity.this, ActivityToGo.class);
intent.putExtra(key, "test");
startActivity(intent);
}

И тогда только вы вызываете этот метод, куда хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...