我的问题是我想改变我的显示图像。我有一个设置片段,我可以更新我的信息。当我点击我的图像显示另一个活动,我已经设置了一些图像。从这个活动我想选择一个图像,我想在我的片段中更新我的显示图像。所以基本上我正在更新我的个人资料图片并显示从片段到活动。我已经添加了图像,请你看看。非常感谢,谢谢
这是我下面关于图像选择的代码。我可以找到解决方案从库中选择图像,但在我的情况下是不同的,很难解决我的问题作为一个新的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();
}};
答案 0 :(得分:0)
您可以使用startActivityForResult启动您选择图像的Activity,然后在完成后您可以传递所选图像。
在片段中,您需要覆盖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时,您可以在完成时将意图传递给之前的Activity / Fragment。当发生这种情况时,会调用onActivityResult方法,然后您可以设置正确的个人资料图片。