首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从活动中选择图像并在片段android中显示

从活动中选择图像并在片段android中显示
EN

Stack Overflow用户
提问于 2016-11-24 14:27:47
回答 1查看 1.3K关注 0票数 0

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

这是我下面关于图像选择的代码。我可以找到解决方案,从画廊选择图片,但在我的情况下,是不同的,很难解决我的问题作为一个新的android。

代码语言:javascript
复制
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();



    }};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-24 15:04:12

您可以使用startActivityForResult启动选择图像的活动,然后在完成时传递选定的图像。

在片段中,您需要重写OnActivityResult方法,并使用它更改配置文件图片。

编辑1

在您的片段中的代码:

代码语言:javascript
复制
@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
        }
    }

}

完成活动的代码:

代码语言:javascript
复制
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方法,然后您可以设置正确的配置文件图片。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40788889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档