首页 > 解决方案 > 如何从 Drawable 的另一个 Activity 上单击 ImageViews 和另一个图像显示在 TextView 上

问题描述

在此处输入图像描述

实际上我正在制作一个Pin Lock Screen的应用程序,我只做了两个活动。On Activity1,我想要如果我点击 On ImageViewThen On Activity2另一个图像 Display From drawable

在此处输入图像描述

OnTextView并且它保存了 OnSharedPreference我是一个初学者,任何帮助,请我会卡住。

第一个活动

public class MainActivity extends Activity implements View.OnClickListener{
    ImageView mpink,mpurple;
    int view;
    String display;
    private ImageView results;
    private Object get_input;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mpink=(ImageView) findViewById(R.id.imageView);
        mpurple=(ImageView) findViewById(R.id.imageView2);

        mpink.setOnClickListener(this);
        mpurple.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        if (results == mpurple) {
            display = "get_input";
            view = R.drawable.comb1;
        }
        else if (results == mpink) {
            display = "get_input";
            view = R.drawable.comb2;
        }
        else {
            display = "get_input";
            view = R.drawable.comb3;
        }
        Intent home_intent=new Intent(getApplicationContext(),Main2Activity.class);
        home_intent.putExtra("home_store_image_src", (Parcelable) mpink);
        home_intent.putExtra("home_store_image_src", (Parcelable) mpurple);
        startActivity(home_intent);
    }}

第二次活动

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        get_result=(TextView)findViewById(R.id.displayresult);
        Intent result_intent=getIntent();
        String text=result_intent.getStringExtra("get_input");
        get_result.setText(text);// display what the user has enter

        // get_image.setImageResource
        //OR other coding to display imageview by using the image_id from activty 1?
        int defaultIdWhenCouldNotFindImageSourceId = -1;//should use a negative value
        int imageId = result_intent.getIntExtra("home_store_image_src", defaultIdWhenCouldNotFindImageSourceId);
        if( defaultIdWhenCouldNotFindImageSourceId != imageId) {
            //when you can find an valid image id in intent extra, display it
            get_image.setImageResource(imageId);
        }
    }}

标签: javaandroid-intentandroid-studio-3.0

解决方案


请检查此问题以帮助您将可绘制对象从一项活动发送到另一项活动

如何在活动之间传递drawable

所以当你使用onClick

 @Override
public void onClick(View v) {
Bitmap bitmap;
    if (results == mpurple) {
        display = "get_input";
       bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.comb1);    
    }
    else if (results == mpink) {
        display = "get_input";
       bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.comb2);    
    }
    else {
        display = "get_input";
       bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.comb3);    
    }
   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); 
   byte[] b = baos.toByteArray();

    Intent home_intent=new Intent(getApplicationContext(),Main2Activity.class);
    home_intent.putExtra("picture", b);
    home_intent.putStringExtra("getInput", display);
    startActivity(home_intent);
}}

此外,您需要编辑第二个活动并ImageView在其 XML 中放入一个,您不能ImageView从 Activity 传递到另一个,但您可以传递一个可绘制对象并将其设置为ImageView第二个 Activity


推荐阅读