如何显示来自活动的片段中的数据

时间:2019-02-11 13:33:08

标签: android android-activity fragment

我创建了一个活动,其中包含一个按钮,一个ViewPager和一些片段。当我单击按钮时,DialogActivity打开并使用AsyncHttpClient连接到Web服务,并向MainActivity返回一些字符串,包括图片的url,名称等。我希望MainActivity特别显示图片网址中的片段数据(使用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放入片段xml文件中。

如果有帮助,那就是UX:

documentation

1 个答案:

答案 0 :(得分:0)

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

MainActivity:

@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));

    }