我正在开发一个应用程序,需要帮助在两个屏幕之间传递消息。第一个屏幕是一个注册表单,带有一个图像按钮,用于显示用户的显示图片。当用户首次打开此屏幕时,ImageButton使用drawable文件夹中的“defaultavatar.png”。在单击此图像按钮时,用户将被定向到具有GridView图标的屏幕以供选择。我需要将所选图像的编号传递回注册活动,并相应地更改ImageButton图像的来源。我该怎么做呢?这是我目前的代码:
在注册活动来源:
Intent intent = getIntent();
String imagePos = intent.getStringExtra(AvatarListActivity.IMAGE_NUMBER);
//String imageName = "@drawable/bigavatar" + imagePos;
String PACKAGE_NAME = getApplicationContext().getPackageName();
ImageButton displayPic = (ImageButton) findViewById(R.id.displayPic);
int imgId;
if(imagePos != null)
{
imgId = getResources().getIdentifier(PACKAGE_NAME+":drawable/bigavatar"+imagePos, null, null);
displayPic.setImageBitmap(BitmapFactory.decodeResource(getResources(),imgId)); //src
}
else
{
imgId = getResources().getIdentifier(PACKAGE_NAME+":drawable/defaultavatar", null, null);
displayPic.setImageBitmap(BitmapFactory.decodeResource(getResources(),imgId)); //src
}
在头像列表活动中:
GridView gridview = (GridView) findViewById(R.id.gridViewAvatars);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
//Toast.makeText(AvatarListActivity.this, "" + position, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getBaseContext(), SignUpActivity.class);
intent.putExtra(IMAGE_NUMBER, position);
startActivity(intent);
}
});
如何根据用户的选择更换图像? (注意:所有头像图标都被编号为bigavatar1,bigavatar2,bigavatar3等)。请尽快帮助,并提前致谢!
答案 0 :(得分:1)
您可以参考Android在线参考:Activity
开始活动和获得结果
startActivity(Intent)方法用于启动新活动, 它将被放置在活动堆栈的顶部。需要一个 单个参数,一个描述活动的Intent 执行。
有时您希望在活动结束时从结果中获取结果。 例如,您可以启动一个允许用户选择的活动 联系人列表中的人;当它结束时,它返回那个人 被选中了。为此,您调用startActivityForResult(Intent, int)具有标识调用的第二个整数参数的版本。该 结果将通过你的onActivityResult(int,int,Intent)返回 方法
当一个活动退出时,它可以调用setResult(int)来返回数据 给它的父母。它必须始终提供结果代码,可以是 标准结果RESULT_CANCELED,RESULT_OK或任何自定义值 从RESULT_FIRST_USER开始。此外,它可以选择返回 返回包含所需的任何其他数据的Intent。所有这些 信息显示在父亲的Activity.onActivityResult()上, 以及它最初提供的整数标识符。
所以你应该使用startActivityForResult。并在发送回来时将数据绑定到intent。您可以使用bundle
附加数据。
答案 1 :(得分:1)
根据您拥有的图片数量,sharedPreferences可能是您的赌注。根据用户在“头像列表”中选择的任何图像,为其指定一个数字。 EX:如果您有10张图片,请为每张图片指定一个数字。使用sharedPreferences将数字选择导入到您的第一个活动中,然后告诉它通过if语句显示哪个。