【问题标题】:Copying variables from spinners to main activity将变量从微调器复制到主要活动
【发布时间】:2016-05-14 07:03:08
【问题描述】:

我有一个主要活动,其中包含一个人体模型(与我同在),当您单击它的头部时,它会打开一个新活动,您可以在其中选择人体模型头部的发型和颜色。我希望能够将此选择复制到主要活动并在人体模型上呈现相同的图片。我该怎么做?

【问题讨论】:

标签: android


【解决方案1】:

您可以在 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());

【讨论】:

    【解决方案2】:

    类似这样的: 来自你的发型活动。

    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?

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2017-11-28
        • 2021-02-26
        • 2017-10-17
        • 2012-08-25
        • 1970-01-01
        • 1970-01-01
        • 2012-12-08
        • 1970-01-01
        • 2022-01-25
        相关资源
        最近更新 更多