【发布时间】:2016-05-14 07:03:08
【问题描述】:
我有一个主要活动,其中包含一个人体模型(与我同在),当您单击它的头部时,它会打开一个新活动,您可以在其中选择人体模型头部的发型和颜色。我希望能够将此选择复制到主要活动并在人体模型上呈现相同的图片。我该怎么做?
【问题讨论】:
-
我建议为您的应用保留全局微调器列表,并从微调器中获取所选项目的位置,并从全局列表中加载相应的项目,因为位置将相同
标签: android
我有一个主要活动,其中包含一个人体模型(与我同在),当您单击它的头部时,它会打开一个新活动,您可以在其中选择人体模型头部的发型和颜色。我希望能够将此选择复制到主要活动并在人体模型上呈现相同的图片。我该怎么做?
【问题讨论】:
标签: android
您可以在 MainActivity 中设置静态变量
喜欢
public static String hairStyle = "";
然后从你的微调器中填充数据后
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);
获取所选内容并将其保存在您的 MainActivity 中
MainActivity.hairStyle = yourList.get(hairStylesSpinner.getSelectedItemPosition());
【讨论】:
类似这样的: 来自你的发型活动。
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);
}
我从这里的一个类似问题中得到了这个答案: how to pass images through intent?
【讨论】:
我通过intent.putExtra 实现了这一点。方法如下:
我创建了一个返回mainActivity的按钮:
<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" />
onClick:"backMain" 在 java 文件中运行 backMain:
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);
}
spinners 上的选中项从 Activity 发送并作为变量保存在主 Activity 中:
String hairStyle, hairColor;
Bundle hairExtras = getIntent().getExtras();
if(hairExtras!=null){
hairStyle = hairExtras.getString("hairStyle");
hairColor = hairExtras.getString("hairColor");
displayHair();
}
【讨论】: