【问题标题】:How to show data in a fragment which comes from an activity如何在来自活动的片段中显示数据
【发布时间】:2019-02-11 13:33:08
【问题描述】:

我创建了一个包含按钮、ViewPager 和一些片段的活动。当我单击按钮时,DialogActivity 打开并使用AsyncHttpClient 连接到Web 服务,并返回一些字符串,如图片url、名称等给MainActivity。我希望MainActivity 在片段中显示数据,特别是图片 url(使用 Glide),但我不能这样做。 如果您能帮助我,我将不胜感激

DialogActivity

void parsAndShowBiography(String response) {
    try {
        Gson gson = new Gson();
        TheaudiodbBiography theaudiodbBiography = gson.fromJson(response, TheaudiodbBiography.class);
        Intent returnIntent = new Intent(DialogActivity.this, MainActivity.class);

        returnIntent.putExtra("artistThumb", theaudiodbBiography.getArtists()
                .get(0).getStrArtistThumb());
        returnIntent.putExtra("strArtist", theaudiodbBiography.getArtists()
                .get(0).getStrArtist());
        returnIntent.putExtra("artistFanart1", theaudiodbBiography.getArtists()
                .get(0).getStrArtistFanart());
        setResult(Activity.RESULT_OK, returnIntent);
        finish();

MainActivity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 100 && resultCode == Activity.RESULT_OK) {

        ???????????????????????

    }

这是片段

public class BiographyFragment extends Fragment {


static BiographyFragment instance;


public static BiographyFragment getInstance() {
    if (instance == null) {
        instance = new BiographyFragment();
    }


    return instance;
}


@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.bigraphy_fragment, container, false);
    return view;
}

我将一些 TextViews 和 ImageViews 放入 Fragment xml 文件中。

如果有帮助,这就是用户体验:

【问题讨论】:

标签: android android-activity fragment


【解决方案1】:

大家好,我用这段代码解决了这个问题:

主要活动:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 100 && resultCode == Activity.RESULT_OK) {

        View test=BiographyFragment.getInstance().getView();

        Glide.with(this).load(data.getStringExtra("artistFanart1")).into(
                            (ImageView)test.findViewById(R.id.artistFanart1));

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多