【发布时间】:2020-01-21 03:15:21
【问题描述】:
我正在学习 Android 开发。自 24 小时以来一直在努力解决此问题,需要帮助。
在我的每个回收视图项目中,我有两个视图 ePaper 和网站。我想在整个项目、电子纸视图和网站视图上附加不同的点击监听器
在上图中,我需要放置 3 个点击监听器 1.点击红色块1 - 做X(意图另一个活动) 2. 点击红色方块 2 - 做 Y (Intent to another activity) 3. 点击绿色方块,整个项目视图 - do Z (Dialog)
尝试了许多解决方案。但是,当我点击红色块时,除了红色块中的侦听器之外,绿色块中的侦听器也会起作用。
在 MainActivity 中
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(),
recyclerView, new ClickListener() {
String userid = Utils.getUserId(getApplicationContext());
@Override
public void onClick(View view, final int position) {
// Set listeners here for complete card view
final NewsPapersDataModel currentPaper = newsPapersList.get(position);
Log.d("TAG","Clicked 1");
newsSelectionDialog(currentPaper.getEpaper(),currentPaper.getWebsite());
}
@Override
public void onLongClick(View view, int position) {
Toast.makeText(MainActivity.this, "Long press on position :" + position, Toast.LENGTH_LONG).show();
}
}));
在 NewsPaperAdapter 中
public void onBindViewHolder(@NonNull final CustomViewHolder holder, int position) {
// Log.d("TAG","Holder is "+newsList);
final NewsPapersDataModel currentItem = newsList.get(position);
final String ePaperUrl = currentItem.getEpaper();
final String webSiteUrl = currentItem.getWebsite();
final String paperName = currentItem.getName();
holder.paperNameView.setText(newsList.get(position).getName());
if (TextUtils.isEmpty(currentItem.getEpaper())) {
// Log.d("TAGG","ePaper - "+currentItem.getEpaper()+" Website - "+currentItem.getWebsite());
holder.ePaperView.setVisibility(View.GONE);
} else if (TextUtils.isEmpty(currentItem.getWebsite())) {
holder.websiteView.setVisibility(View.GONE);
}
holder.ePaperView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveLinksToDb(userid, "ePaper", ePaperUrl);
Intent intent = new Intent(context, NewsAdvancedWebViewActivity.class);
intent.putExtra("url", ePaperUrl);
context.startActivity(intent);
}
});
holder.websiteView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveLinksToDb(userid, "Website", webSiteUrl);
Intent intent = new Intent(context, NewsAdvancedWebViewActivity.class);
intent.putExtra("url", webSiteUrl);
intent.putExtra("paperName",paperName);
context.startActivity(intent);
}
});
}
请帮帮我。
【问题讨论】:
-
为什么要在回收站视图中添加触摸监听器?
标签: android