Передача массива строк в другой вид деятельности - android studio - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь передать массив строк в другое действие с помощью намерения; Вот мои коды намерений:

private void activityGecis2() {
    Intent gecis2 = new Intent(this, dizilisActivity.class);
    gecis2.putExtra("isimler",oyuncular);
    startActivity(gecis2);

Когда я передаю их, я хочу установить их как текстовое представление текста. но gelenIsimler возвращает ноль. Итак, вот коды, так что мне делать?

public class dizilisActivity extends AppCompatActivity {
    TextView oyuncu1, oyuncu2,oyuncu3,oyuncu4,oyuncu5,oyuncu6,oyuncu7,oyuncu8,oyuncu9,oyuncu10;
    TextView[] oyuncular = {oyuncu1, oyuncu2,oyuncu3,oyuncu4,oyuncu5,oyuncu6,oyuncu7,oyuncu8,oyuncu9,oyuncu10};
     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dizilis);
        String[] gelenIsimler = getIntent().getStringArrayExtra("isimler");


        oyuncu1 = (TextView) findViewById(R.id.oyuncu1);
        oyuncu2 = (TextView) findViewById(R.id.oyuncu2);
        oyuncu3= (TextView) findViewById(R.id.oyuncu3);
        oyuncu4= (TextView) findViewById(R.id.oyuncu4);
        oyuncu5= (TextView) findViewById(R.id.oyuncu5);
        oyuncu6 = (TextView) findViewById(R.id.oyuncu6);
        oyuncu7 = (TextView) findViewById(R.id.oyuncu7);
        oyuncu8 = (TextView) findViewById(R.id.oyuncu8);
        oyuncu9 = (TextView) findViewById(R.id.oyuncu9);
        oyuncu10 = (TextView) findViewById(R.id.oyuncu10);

for (int i = 0; i < oyuncular.length; i++ )
    oyuncular[i].setText(gelenIsimler[i]);

    }
}

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Измените ваш код, как показано ниже

private void activityGecis2() {
    Intent gecis2 = new Intent(this, dizilisActivity.class);
    Bundle bundle = new Bundle();
    bundle.putStringArray("isimler", oyuncular);
    gecis2.putExtras(bundle);
    startActivity(gecis2);
}

В dizilisActivity получите массив, как показано ниже

String[] gelenIsimler = getIntent().getExtras().getStringArray("isimler");
0 голосов
/ 04 апреля 2020

Вы должны получить серию, отправленную с Пакетом .

Пакеты обычно используются для передачи данных между различными Android действиями. От вас зависит, какой тип значений вы хотите передать, но пакеты могут содержать все типы значений и передавать их новому действию.

Bundle extras =  getIntent().getExtras();
String[] gelenIsimler = extras.getStringArrayExtra("isimler");

Решение - 2

Bundle b=new Bundle();
b.putStringArray("isimler", oyuncular);
Intent intent=new Intent(this, dizilisActivity.class);
intent.putExtras(b);
startActivity(intent);

Другая деятельность

 Intent intent=getIntent();
 Bundle b=intent.getExtras();
 String[] array=b.getStringArray("isimler");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...