如何在 OnItemClickListener 中应用通知?
Posted
技术标签:
【中文标题】如何在 OnItemClickListener 中应用通知?【英文标题】:How to apply notifications in OnItemClickListener? 【发布时间】:2012-06-25 18:23:51 【问题描述】:我在使用 OnItemClickListener 的通知代码中有 3 个错误 我需要应用它,当单击一个项目时它会显示通知 这是代码:
list.setOnItemClickListener(new OnItemClickListener()
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
// TODO Auto-generated method stub
Bundle programNum = getIntent().getExtras();
final String progNum = programNum.getString("ProgNum");
final String dayNum = programNum.getString("DayNum");
final List<TouringPrograms> startTime = datasource.getTouringProgramsStartTime(progNum, dayNum);
final List<TouringPrograms> endTime = datasource.getTouringProgramsEndTime(progNum, dayNum);
Intent intent = new Intent(this, ProgramsList2.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
String body = (String) ((TextView)parent.getChildAt(position)).getText();
String title = "Egypt On The Go";
String time = body + "\n start at:" + startTime.get(position)+ "\n end at:" + endTime.get(position);
Notification n = new Notification(R.drawable.egypt, time, System.currentTimeMillis());
n.setLatestEventInfo(this, title, time, pi);
n.defaults = Notification.DEFAULT_ALL;
nm.notify(uniqueID, n);
//String time1 = "" + System.currentTimeMillis();
//Toast.makeText(this, time1, Toast.LENGTH_SHORT).show();
//finish();
);
第 3 个错误:
1.Intent intent = new Intent(this, ProgramsList2.class);
2.PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
3.n.setLatestEventInfo(this, title, time, pi);
请帮忙?
【问题讨论】:
错误应该为您提供足够的信息来开始调查 我猜它们是编译器错误,无论您使用哪种编译方式,您都应该得到一些描述错误的文本。 【参考方案1】:错误 1
Intent intent = new Intent(this, ProgramsList2.class);
this
是 OnItemClickListener
类型的项目。您应该通过在调用setOnItemClickListener
之前 声明final Context intentContext = (Context) this;
来传递它。然后,使用:
Intent intent = new Intent(intentContext, ProgramsList2.class);
始终记得跟踪您的Context
项目;它们对于这样的事情很重要(Intent
s、资源、资产等)。
错误 2
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
与上面完全相同的问题。 this
不是 Context
类型。使用与上述相同的修复方法。
错误 3
n.setLatestEventInfo(this, title, time, pi);
在这里,与上述两个问题相同。当您应该使用Context
时,您正在使用this
。与上述两个相同的修复。
总结
在使用anonymous classes 时跟踪您的this
s。对于将来,发布编译错误(代码行以及错误本身的文本)对那些提供答案的人来说非常有帮助。
【讨论】:
请考虑将此答案标记为正确,因为它会帮助有相同问题的其他人也解决他们的问题!以上是关于如何在 OnItemClickListener 中应用通知?的主要内容,如果未能解决你的问题,请参考以下文章
设置为null后如何将onItemClickListener重置为true?
如何在 ListView 中使用 onItemClickListener 获取其他列
如何通过 onItemClickListener 在不同的类( ConsumerDescAndEdit.java )中使用某个类的变量?
如何使用 onItemClickListener 存储 ListView 中的可点击项目?
如何使用 Android Studio 在 Twitter Kit 的 TweetUI 列表上设置 OnItemClickListener?