我正在开发一个简单的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();
}然后返回到级别选择菜单活动。我正在尝试以这种方式检索数据(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个不同的it )?
提前谢谢你。
编辑:如果我说得不够清楚,我道歉。我认为有一些方法可以改变位于MainActivity上的图像的可见性,例如,在另一个活动的按钮内有意图的图像。感谢您的回答。
EDIT2:添加另一次尝试失败的代码。
发布于 2012-10-24 12:49:06
您可以通过意图传递图像。首先,将您的图像转换为字节数组,并将其与意图一起发送。
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("picture", b);
startActivity(intent);然后,您可以从下一个活动中检索此图像。
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);希望这能对你有所帮助。
https://stackoverflow.com/questions/13042606
复制相似问题