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();
}