Передача массива String между двумя классами в приложении для Android - PullRequest
10 голосов
/ 07 марта 2011

Я новичок в Android. Как передать массив String между двумя классами?

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

Могу ли я использовать комплект? Есть ли лучший способ передачи массива String?

Ответы [ 3 ]

33 голосов
/ 07 марта 2011

Если вы пытаетесь отправить массив строк из одного действия в другое, это можно сделать в намерении.

В ClassA:

Intent intent = new Intent(this, ClassB);
String[] myStrings = new String[] {"test", "test2"};
intent.putExtra("strings", myStrings);
startActivity(intent);

В ClassB:

public void onCreate() {
  Intent intent = getIntent();
  String[] myStrings = intent.getStringArrayExtra("strings");
}
1 голос
/ 07 марта 2011

Если вы хотите передать данные назад и вперед между действиями, то есть из действия A, запустить действие B и передать массив строк, вы можете использовать метод putStringArrayListExtra при создании намерения:

http://developer.android.com/reference/android/content/Intent.html#putStringArrayListExtra%28java.lang.String,%20java.util.ArrayList%3Cjava.lang.String%3E%29

поэтому в упражнении А вы должны сделать что-то вроде:

Intent intentB = new Intent(this, ActivityB.class);
intentB.putStringArrayListExtra("name", <the array>);
this.startActivity(intentB)

НТН

1 голос
/ 07 марта 2011

Я предлагаю вам сделать get_array из функции set_array в классе очень просто. Надеюсь, вы уже знаете это.

//Right in A... Class

String array[]=new String[5];
public void set_array(String arg[])
{
    array=arg;
}

public String[] get_array()
{
    return array;
}

//Right in B.. class for geting a string array

A mAObject=new A();
String classA_array=mAObject.get_array();

Надеюсь, это поможет.

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