我有一个列出自定义对象的ListView(比方说MyObject
).
我想通过动态过滤它,EditText
所以我不得不getFilter()
用publishResults方法实现一个:
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
MyObjectAdapter.this.setItems((List<MyObject>) results.values);
MyObjectAdapter.this.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
此时,Eclipse抱怨道: Type safety: Unchecked cast from Object to List<MyObject>
我确信这个演员总是真实的,但Eclipse只建议添加,@SuppressWarnings("unchecked")
但我完全反对,SuppressWarnings
因为它只是隐藏问题,而不是解决方案......
我尝试添加:
if(results.values instanceof List<MyObject>)
Run Code Online (Sandbox Code Playgroud)
但Eclipse再次抱怨,这没有解决任何问题......
Cannot perform instanceof check against parameterized type List<MyObject>. Use the form List<?>
我知道转换将始终是正确的,但这是使代码确定results.values
实际上是正确的方法List<MyObject>
吗?
提前致谢!
我设法制作一个ActionBar Tab菜单,调用扩展Fragments的不同类.问题是,当我改变方向时,在菜单项之间切换什么都不做.但我终于弄明白了这个问题.
这里的主要问题是方向更改时不会删除旧片段,因此在用户选定的选项卡上方始终存在未使用的选项卡的副本
有任何想法吗?我遗失了一些基本的东西?
谢谢
我有5个活动(让我们说A,B,C,D
和E
).活动A到D用于设置一些数据,因此用户可以来回更改任何内容.活动E
,在另一方面,是总结,所以用户不再被允许回去.
我的想法是在用户到达时完成之前的所有活动 E
目前,我的活动A
,以D
没有重视他们的标志.
Activty E被称为:
Intent I = new Intent(this, SomeClass.class);
I.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(I);
我到处都读到这些标志应该实现我想要做的事情,但是当用户进入活动E
并按下Back
按钮时,应用程序将返回活动状态D
.
有任何想法吗?我错过了什么?这不是解决这个问题的正确方法吗?
谢谢你的帮助
public static final String NOTIFICATION_TITLE = "Title";
public static final int NOTIFICATION_ID = 1;
private NotificationManager mNotificationManager;
NotificationCompat.Builder builder;
private void sendNotification(String msg) {
mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(NOTIFICATION_TITLE)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.setAutoCancel(true)
.setContentIntent(contentIntent)
.setContentText(msg);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在我的Nexus 4(Android 4.3)上工作得很顺利,但我的旧Nexus One(Android 2.3.7)仍然会向我显示通知.
清单文件
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- GCM -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="my.package.matchtracker.permission.C2D_MESSAGE" …
Run Code Online (Sandbox Code Playgroud)