小编Elo*_*rro的帖子

类型安全:未选中从对象转换为列表<MyObject>

我有一个列出自定义对象的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>吗?

提前致谢!

android listview casting filter custom-object

19
推荐指数
3
解决办法
4万
查看次数

Android ICS + ActionBar选项卡+方向更改

我设法制作一个ActionBar Tab菜单,调用扩展Fragments的不同类.问题是,当我改变方向时,在菜单项之间切换什么都不做.但我终于弄明白了这个问题.

这里的主要问题是方向更改时不会删除旧片段,因此在用户选定的选项卡上方始终存在未使用的选项卡的副本

有任何想法吗?我遗失了一些基本的东西?

谢谢

tabs android orientation android-actionbar

5
推荐指数
1
解决办法
2024
查看次数

Android完成以前的导航活动

我有5个活动(让我们说A,B,C,DE).活动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.

有任何想法吗?我错过了什么?这不是解决这个问题的正确方法吗?

谢谢你的帮助

android android-activity

5
推荐指数
2
解决办法
5827
查看次数

API <11上的NotificationCompat.Builder无法正常工作

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)

notifications android android-2.3-gingerbread

5
推荐指数
1
解决办法
3001
查看次数