Android 将变量从微调器复制到主活动

Android 将变量从微调器复制到主活动,android,Android,我有一个包含人体模型的主要活动(请耐心等待),当你点击它的头部时,它会打开一个新的活动,在这个活动中,你可以选择人体模型头部的发型和颜色。我想能够复制这一选择的主要活动,并提出在人体模型相同的图片。我怎样才能做到这一点?类似这样的事情: 因为你的发型很活泼 Intent _intent = new Intent(this, newscreen.class); Bitmap _bitmap; // your bitmap ByteArrayOutputStream _bs = new ByteAr

我有一个包含人体模型的主要活动(请耐心等待),当你点击它的头部时,它会打开一个新的活动,在这个活动中,你可以选择人体模型头部的发型和颜色。我想能够复制这一选择的主要活动,并提出在人体模型相同的图片。我怎样才能做到这一点?

类似这样的事情: 因为你的发型很活泼

Intent _intent = new Intent(this, newscreen.class);
Bitmap _bitmap; // your bitmap
ByteArrayOutputStream _bs = new ByteArrayOutputStream();
_bitmap.compress(Bitmap.CompressFormat.PNG, 50, _bs);
i.putExtra("byteArray", _bs.toByteArray());
startActivity(i);
从你的人体模型活动

 if(getIntent().hasExtra("byteArray")) {
   ImageView _imv= new ImageView(this);
   Bitmap _bitmap = BitmapFactory.decodeByteArray(
            getIntent().getByteArrayExtra("byteArray"),0,getIntent().
   getByteArrayExtra("byteArray").length);        
   _imv.setImageBitmap(_bitmap);
}
我从一个类似的问题中得到了这个答案:

您可以在MainActivity中设置静态变量

然后在填充数据后从微调器中

Spinner hairStylesSpinner = (Spinner) findViewById(R.id.hair_styles_spinner);

SpinnerAdapter spinnerAdapter = new SpinnerAdapter(new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.hair_styles))), "");

hairStylesSpinner.setAdapter(spinnerAdapter);
Spinner hairStylesSpinner=(Spinner)findViewById(R.id.hair\u styles\u Spinner);
SpinnerAdapter SpinnerAdapter=新的SpinnerAdapter(新的ArrayList(Arrays.asList(getResources().getStringArray(R.array.hair_styles)),“”);
发式旋转器。旋转适配器(旋转适配器);
获取选定的活动并将其保存在MainActivity中


MainActivity.hairStyle=yourList.get(hairStylesSpinner.getSelectedItemPosition())

我通过intent.putExtra实现了这一点。以下是如何:

我创建了一个按钮以返回主活动:

<Button
    android:id="@+id/backtomain"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/back_arrow"
    android:onClick="backMain"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true" />
微调器上的选定项目将从“活动”中发送,并保存为“主活动”中的变量:

String hairStyle, hairColor;
Bundle hairExtras = getIntent().getExtras();
if(hairExtras!=null){
    hairStyle = hairExtras.getString("hairStyle");
    hairColor = hairExtras.getString("hairColor");
    displayHair();
}

我建议您的应用程序保持微调器列表为全局,并从微调器获取所选项目位置,然后从全局列表加载相应项目,因为位置将相同
public void backMain(View view){
    Intent intent = new Intent (this, MainActivity.class);
    intent.putExtra("hairStyle", hairSpinner.getSelectedItem().toString());
    intent.putExtra("hairColor", hairColor.getSelectedItem().toString());
    startActivity(intent);
}
String hairStyle, hairColor;
Bundle hairExtras = getIntent().getExtras();
if(hairExtras!=null){
    hairStyle = hairExtras.getString("hairStyle");
    hairColor = hairExtras.getString("hairColor");
    displayHair();
}