如何限制双击项

efzxgjgh  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(288)

嗨,我的应用程序有问题。在双击之前的一个项目后,它只打开一次,但当我返回选择项目徽标时,标题和背景在之后消失。我的每个布局都有 android:launchMode="singleTop" 在清单中限制打开同一项。我必须重新启动应用程序才能恢复正常
布局代码

public class Organizacje extends AppCompatActivity implements OrgCallback {
    private RecyclerView rvOrg;
    private OrgAdapter orgAdapter;
    private List<Org> mdata;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_organizacje);
        setTitle("Organizacje ekologiczne");
        initViews();
        initmdataOrg();
        setupOrgAdapter();
    }

    private void setupOrgAdapter() {
        orgAdapter = new OrgAdapter(mdata, this);
        rvOrg.setAdapter(orgAdapter);
    }

    private void initmdataOrg() {
        mdata = new ArrayList<>();
        mdata.add(new Org(getString(R.string.unep2), getString(R.string.unep_long_desc),R.drawable.unep));
        mdata.add(new Org(getString(R.string.ksib2), getString(R.string.ksib_long_desc), R.drawable.ksib));
        mdata.add(new Org(getString(R.string.pzfd2), getString(R.string.pzfd_long_desc),R.drawable.pzfd));
    }

    private void initViews() {
        rvOrg = findViewById(R.id.rv_org);
        rvOrg.setLayoutManager(new LinearLayoutManager(this));
        rvOrg.setHasFixedSize(true);
    }

    @Override
    public void onOrgItemClick(int pos, ImageView imgContainer, ImageView imgLogo, TextView title) {
        Intent intent = new Intent(this, OrgDetails.class);
        intent.putExtra("orgObject", mdata.get(pos));
        Pair<View, String> p1 = Pair.create((View)imgContainer,"containerTN");
        Pair<View, String> p2 = Pair.create((View)imgLogo,"logoTN");
        Pair<View, String> p3 = Pair.create((View)title,"titleTN");

        ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this, p1, p2, p3);
        startActivity(intent, optionsCompat.toBundle());
    }
}

适配器代码

public class OrgAdapter extends RecyclerView.Adapter<OrgAdapter.orgviewholder> {
List<Org> mdata;
OrgCallback callback;

public OrgAdapter(List<Org> mdata, OrgCallback callback) {
    this.mdata = mdata;
    this.callback = callback;
}

@NonNull
@Override
public orgviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.item_org, parent, false);
    return new orgviewholder(view);
}

@Override
public void onBindViewHolder(@NonNull orgviewholder holder, int position) {
    Glide.with(holder.itemView.getContext())
            .load(mdata.get(position).getDrawableResource())
            .transforms(new CenterCrop(), new RoundedCorners(16))
            .into(holder.imgOrg);
    holder.title.setText(mdata.get(position).getTitle());
    holder.description.setText(mdata.get(position).getDescription());
}

@Override
public int getItemCount() {
    return mdata.size();
}

public class orgviewholder extends RecyclerView.ViewHolder {
    ImageView imgOrg, imgContainer;
    TextView title, description;
    public orgviewholder(@NonNull View itemView) {
        super(itemView);
        this.imgOrg = itemView.findViewById(R.id.item_org_logo);
        this.imgContainer = itemView.findViewById(R.id.container_org);
        this.title = itemView.findViewById(R.id.item_org_title);
        this.description = itemView.findViewById(R.id.item_org_description);

        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                callback.onOrgItemClick(getAdapterPosition(), imgContainer, imgOrg, title);
            }
        });
    }
}
}
xeufq47z

xeufq47z1#

尝试在onresume()中添加项目;

public class Organizacje extends AppCompatActivity implements OrgCallback {
    private RecyclerView rvOrg;
    private OrgAdapter orgAdapter;
    private List<Org> mdata;

    @Override
    protected void onResume() {
        super.onResume();
        initmdataOrg();
        setupOrgAdapter();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_organizacje);
        setTitle("Organizacje ekologiczne");
        initViews();

    }

    private void setupOrgAdapter() {
        orgAdapter = new OrgAdapter(mdata, this);
        rvOrg.setAdapter(orgAdapter);
    }

    private void initmdataOrg() {
        mdata = new ArrayList<>();
        mdata.add(new Org(getString(R.string.unep2), getString(R.string.unep_long_desc),R.drawable.unep));
        mdata.add(new Org(getString(R.string.ksib2), getString(R.string.ksib_long_desc), R.drawable.ksib));
        mdata.add(new Org(getString(R.string.pzfd2), getString(R.string.pzfd_long_desc),R.drawable.pzfd));
    }

    private void initViews() {
        rvOrg = findViewById(R.id.rv_org);
        rvOrg.setLayoutManager(new LinearLayoutManager(this));
        rvOrg.setHasFixedSize(true);
    }

    @Override
    public void onOrgItemClick(int pos, ImageView imgContainer, ImageView imgLogo, TextView title) {
        Intent intent = new Intent(this, OrgDetails.class);
        intent.putExtra("orgObject", mdata.get(pos));
        Pair<View, String> p1 = Pair.create((View)imgContainer,"containerTN");
        Pair<View, String> p2 = Pair.create((View)imgLogo,"logoTN");
        Pair<View, String> p3 = Pair.create((View)title,"titleTN");

        ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this, p1, p2, p3);
        startActivity(intent, optionsCompat.toBundle());
    }
}

如果不工作,请张贴您的适配器代码。

相关问题