передача массивов с помощью пакета в android

Мне нужно передать массив строковых / целочисленных значений из одного действия в другое. Как мне этого достичь?

5 ответов


в упражнении A:

String[] abc;

Bundle bundle =new Bundle();
bundle.putStringArray("some string",abc);

в упражнении B, где вы хотите получить, дайте код как:

String abcd[]=bundle.getStringArray("some string");

"некоторая строка" должна быть одинаковой в обоих случаях.


на стороне отправителя, код должен быть:

String[] myStrings=new String[2];
myStrings[0]="MONDAY";
myStrings[1]="TUESDAY";
Intent intent = new Intent(v.getContext(), Animation_program.class);
Bundle bundle = new Bundle();
intent.putExtra("strings", myStrings);
intent.putExtras(bundle);               
startActivity(intent);

на стороне приемника код должен быть:

Intent i = getIntent();
Bundle extras=i.getExtras();

if(extras != null)  //this line is necessary for getting any value
{
    String[] fajr_Values = i.getStringArrayExtra("strings");
    Toast.makeText(this, "value="+fajr_Values[0]+""+fajr_Values[1], Toast.LENGTH_SHORT).show();
}

Я никогда не передавал массив с помощью расслоения, и я не знаю, можно ли это сделать, но вы, безусловно, можете передать ArrayList (или что-нибудь Сериализуемое/Parcelable). См. этот вопрос для более полного ответа:

передача данных непримитивного типа между действиями в android


передать этот передать arraylist из одного действия в другое может помочь вам


код для строки pass и целочисленного значения ::

В Вашем Первом Действии ::

Intent intent = new Intent(California.this,details.class);
Bundle bundle = new Bundle();
bundle.putString("Keyname1", StringValue);
bundle.putInt("Keyname2", IntegerValue);
intent.putExtras(bundle);
startActivity(intent);

Во Втором Действии:

Bundle b=this.getIntent().getExtras();
String s=b.getString("Keyname1");
int i=b.getInt("Keyname2");