Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我们有没有办法在不替换片段的情况下替换单个片段的数据?_Android_Android Studio_Android Fragments_Fragment_Android Fragmentactivity - Fatal编程技术网

Android 我们有没有办法在不替换片段的情况下替换单个片段的数据?

Android 我们有没有办法在不替换片段的情况下替换单个片段的数据?,android,android-studio,android-fragments,fragment,android-fragmentactivity,Android,Android Studio,Android Fragments,Fragment,Android Fragmentactivity,您可以在片段上创建一个方法,用于更新它,如果片段已经存在,则可以使用该方法 例如: public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) { holder.tvItem.setText(itemList.get(position).getmTitle()); Picasso.get().load(itemList.get(position).geturl()).i

您可以在片段上创建一个方法,用于更新它,如果片段已经存在,则可以使用该方法

例如:

public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {

    holder.tvItem.setText(itemList.get(position).getmTitle());
    Picasso.get().load(itemList.get(position).geturl()).into(holder.imgFlag);
    final ModelClass model= itemList.get(position);
    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            DataFragment dataFragment= new DataFragment();
            ((AppCompatActivity)mContext).getSupportFragmentManager()
                    .beginTransaction()
                    .replace(R.id.fragment,dataFragment)
                    .commit();
                    Bundle bundle= new Bundle();
                    bundle.putSerializable("model", model);
                    dataFragment.setArguments(bundle);
                }
            });
    }
}

希望有帮助

发布您的代码,我们将帮助您。我使用了一个片段,在单击recyclerview时显示数据。我想问一下,如果我们想在点击recyclerview时更新数据,但片段并没有被替换,那么它将如何完成?是否有我们使用的任何方法或界面?我已添加代码,请检查是否要在右键单击recyclerview项时更新数据?是,我要更新
public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {

    holder.tvItem.setText(itemList.get(position).getmTitle());
    Picasso.get().load(itemList.get(position).geturl()).into(holder.imgFlag);
    final ModelClass model= itemList.get(position);
    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Activity activity = ((AppCompatActivity)mContext);
            Fragment fragment = activity.getSupportFragmentManager().findFragmentById(R.id.fragment);
            // Check if the fragment already exists, if so, just update it
            if (fragment != null) {
                DataFragment dataFragment = (DataFragment) fragment;
                dataFragment.replaceData(model);
            }
            else { // Create new instance
                DataFragment dataFragment= new DataFragment();
                activity.getSupportFragmentManager()
                        .beginTransaction()
                        .replace(R.id.fragment,dataFragment)
                        .commit();
                Bundle bundle = new Bundle();
                bundle.putSerializable("model", model);
                dataFragment.setArguments(bundle);
            }
        });
    }
}