嗨,我的应用程序有问题。在双击之前的一个项目后,它只打开一次,但当我返回选择项目徽标时,标题和背景在之后消失。我的每个布局都有 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);
}
});
}
}
}
1条答案
按热度按时间xeufq47z1#
尝试在onresume()中添加项目;
如果不工作,请张贴您的适配器代码。