我的问题是我想改变我的显示图像。我有一个设置片段,可以更新我的信息。当我点击我的图片是显示另一个活动,在那里我有几个图片。从这个活动中,我想选择一个图像,并且我想更新我的片段中的显示图像。基本上,我正在更新我的个人资料图片,并将它从一个片段显示到另一个活动。我也增加了图片,请您看一下。非常感谢,谢谢


这是我下面关于图像选择的代码。我可以找到解决方案,从画廊选择图片,但在我的情况下,是不同的,很难解决我的问题作为一个新的android。
AdapterView.OnItemClickListener myOnItemClickListener = new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int prompt = (int)parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), prompt, Toast.LENGTH_LONG).show();
finish();
}};发布于 2016-11-24 15:04:12
您可以使用startActivityForResult启动选择图像的活动,然后在完成时传递选定的图像。
在片段中,您需要重写OnActivityResult方法,并使用它更改配置文件图片。
编辑1
在您的片段中的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/** your code **/
profilePicture.setOnClickListener(new OnClickListener() {
void onClick(View v) {
Intent i = new Intent(this, ActivityToPickImage.class);
startActivityForResult(i, 1); // you should define a constant instead of 1
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK) {
int result = data.getIntExtra("result", 0);
//result is the code of the picked image
//code to change profile picture goes here
}
}
}完成活动的代码:
AdapterView.OnItemClickListener myOnItemClickListener = new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int prompt = (int)parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), prompt, Toast.LENGTH_LONG).show();
Intent returnIntent = new Intent();
returnIntent.putExtra("result", prompt);
setResult(Activity.RESULT_OK, returnIntent);
finish();
}};Example on starting an activity for result
当您使用startActivityForResult时,当它是finishig时,您可以将一个意图传递给前面的活动/片段。当这种情况发生时,将调用onActivityResult方法,然后您可以设置正确的配置文件图片。
https://stackoverflow.com/questions/40788889
复制相似问题