我正在开发一个简单的 Android 游戏,分为多个级别。我希望当该关卡完成时,该关卡按钮(在关卡选择菜单上)旁边会出现一个复选图标(ImageView)。 按下按钮后就完成了一个关卡,如下(InsideLevelActivity):
final EditText level1editText=(EditText)findViewById(R.id.level1editText);
Button level1completeButton=(Button)findViewById(R.id.level1completeButton);
level1completeButton.setOnClickListener(new View.OnClickListener()
public void onClick(View v)
{
final String edittext=level1editText.getText().toString();
if(edittext.trim().equals("Complete level"))
{
{
Intent visible1 = new Intent();
visible1.putExtra("iconvisible",0);
startActivity(visible1);
{
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.activity_level1completed,
(ViewGroup) findViewById(R.id.img11_toast));
Toast toast = new Toast(Level1Activity.this);
toast.setView(view);
toast.show();
{ onBackPressed(); {
return;
}
}
}
else
{
Toast.makeText(Level1Activity.this,
"Type Complete level.", Toast.LENGTH_LONG).show();
}
然后返回到级别选择菜单 Activity 。我正在尝试以这种方式检索数据(LevelMenuActivity):
ImageView logocheckicon1=(ImageView)findViewById(R.id.logocheckicon1);
logocheckicon1.setVisibility(View.GONE);
Intent visible1 = getIntent();
int state = Integer.parseInt(visible1.getExtras().get("iconvisible").toString());
complete1.setVisibility(iconvisible);
过去几天我尝试了很多方法,包括 this one (how to pass data between two activities) 。我什至尝试使检查图标(ImageView)不可见,并使其再次可见 this way .
此外,每个已完成的关卡旁边都会出现相同的复选图标。是否可以仅使用一个 ImageView 来完成此任务(无需为同一可绘制对象创建 10 个不同的 ID)?
提前谢谢您。
编辑: 如果我不够清楚,我深表歉意。我认为有某种方法可以更改位于 MainActivity 上的图像的可见性,并且 Intent 在另一个 Activity 的按钮内。 谢谢您的回答。
EDIT2:添加了另一次不成功尝试的代码。
最佳答案
将图像从一个 Activity 传递到另一 Activity 。首先将图像转换为位图,然后进行 base64,然后转换字符串,然后通过 Intent 传递它或保存共享首选项。
public boolean saveImage(Context context, Bitmap realImage) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
realImage.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
}
然后通过 Intent 在另一个 Activity 中获取此图像或从共享首选项中获取
public Bitmap getFacebookImageBitmap(Context context)
{
Bitmap bitmap = null;
String saveimage=from intent or share-preference string.
if( !saveimage.equalsIgnoreCase("") ){
byte[] b = Base64.decode(saveimage, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
}
return bitmap;
}
谢谢
关于android - 如何在按下按钮后更改不同 Activity 的 ImageView 可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042606/