java - 如何从 Drawable 的另一个 Activity 上单击 ImageViews 和另一个图像显示在 TextView 上
问题描述
实际上我正在制作一个Pin Lock Screen的应用程序,我只做了两个活动。On Activity1
,我想要如果我点击 On ImageView
Then 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);
}
}}
解决方案
请检查此问题以帮助您将可绘制对象从一项活动发送到另一项活动
所以当你使用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
推荐阅读
- c++ - 如果父级没有没有参数的构造函数,我该如何制作子构造函数
- yarnpkg - 如何从纱线零安装包创建包包?
- github - Pycharm 的 Github 永久链接?
- python - 使用openCV保存图像时颜色错误
- google-apps-script - Google Vision API 偶尔返回 404 错误
- json - JSON查询未在Ansible playbook中返回值
- azure-devops - azure devops cli 查询工作时间
- variadic-templates - 我如何去获取可变参数并将它们转换/添加到向量中?+ 问题
- python - 在 Python 中使用正则表达式时,如何考虑可能为空的组?
- emv - 有没有办法知道使用 EMV 的卡中有多少应用程序?