小编urS*_*Sus的帖子

过卷滚动指示器,带有剪辑到填充

我有这个问题,我不能摆脱froyo和姜饼.我使用clipToPadding ="false"属性在listView周围没有顶部和底部填充,除非它结束.但是在2.2和2.3中,使用clipToPadding会导致过度滚动指示或我应该如何调用它,忽略我的clipToPadding设置并使这些白线出现在我的图像而不是屏幕边缘.

在此输入图像描述

然而,这在ICS上并不存在

android listview clip overscroll

9
推荐指数
1
解决办法
4471
查看次数

CursorLoader - 两个表连接查询?

我有两个1:1关系的表,我正在使用内容提供程序和cursorloader.

如何使用游标加载器进行连接查询?我可以用内容提供程序中的rawSql以某种方式破解它,但是如何在游标加载器构造函数中执行它是超出我的.

非常感谢 !

private static final String CREATE_TABLE_ARTICLES = "create table "
            + TABLE_ARTICLES + "("
            + COLUMN_ARTICLE_ID + " integer primary key autoincrement, "
            + COLUMN_URL + " text not null unique, "
            + COLUMN_TITLE + " text not null, "
            + COLUMN_PRICE + " text not null, "
            + COLUMN_ADDED + " text not null, "
            + COLUMN_IMG_URL + " text);";

    private static final String CREATE_TABLE_ARTICLE_DETAIL = "create table "
            + TABLE_ARTICLE_DETAILS + "("
            + COLUMN_ARTICLE_DETAIL_ID …
Run Code Online (Sandbox Code Playgroud)

android join android-contentprovider android-cursorloader

9
推荐指数
1
解决办法
5979
查看次数

带有游标的ViewPager PagerAdapter - 使用不同的查询调用CursorLoader.onLoadFinished

我正在做一个引用应用程序,它从数据库中提取引号,我需要在ViewPager中显示引号.

我创建了我的CursorPagerAdapter似乎运行良好.

public class MyCursorPagerAdapter extends PagerAdapter {

    private Cursor cursor;
    private LayoutInflater inflater;

public MyCursorPagerAdapter(Context context, Cursor cursor) {

    Log.d(MainActivity.TAG, "MyCursorPagerAdapter.onCreate()");

    this.cursor = cursor;
    this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public void swapCursor(Cursor cursor) {
    //if(cursor != null) {

        Log.d(MainActivity.TAG, "swapCursor().");

        this.cursor = cursor;
        //notifyDataSetChanged();
    //}
}

/**
 * Metóda destroyItem
 */
@Override
public void destroyItem(View view, int position, Object object) {

    //cursor.moveToPosition(position);
    ((ViewPager) view).removeView((LinearLayout) object);
}

/**
 * Vráti po?et prvkov
 */
@Override
public int getCount() {
    if(cursor == …
Run Code Online (Sandbox Code Playgroud)

android cursor adapter pager android-cursorloader

8
推荐指数
1
解决办法
6666
查看次数

ViewPager和数据库

该数据是在数据库中,所以我通常会使用的CursorAdapter,并将它与一个ListView CursorLoader工作,但是现在我需要一个ViewPager,而不是一个ListView的,并且需要一个PagerAdapter我只有它已经看到了与列表工作.

是否有使用游标或生病的本地寻呼机适配器必须使其工作?

谢谢!

database android cursor adapter android-viewpager

7
推荐指数
1
解决办法
5235
查看次数

意图标志 - 如何启动新活动实例并关闭其他实例

我对意图标志并不熟悉,所以请耐心等待.

我正在做一个应用程序,它在ViewPager中显示数据库中的内容.我还有一个小部件,它不时拉出一个随机行并显示它.现在,当我点击它时,我将进入一个活动,其中显示相同的内容,现在我可以对其采取行动.

一切正常,但是当我有一个已经运行的活动,然后点击小部件时,它似乎创建了一个新实例,因为当我按下后退按钮时,我没有退出应用程序但是被带到之前的实例或其他东西.

有没有办法启动一个活动的新实例,如果有一些以前的实例运行关闭它们,使用标志?

我玩了CLEAR_TOP和那些东西但老实说我不知道​​我在做什么.

谢谢!

//编辑

Intent.FLAG_ACTIVITY_CLEAR_TOP似乎没有做任何事情.Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP似乎将前一个放到顶部而忽略了新的一个或者什么.也许让我改一下,我从启动器图标开始活动,然后我按下主页按钮并单击小部件,它应该调出一个新的实例,其中ViewPager.setCurrentItem设置正确的页面(与小部件相同).如果之前没有运行主要活动,一切都没问题,但如果它正在运行,请完成它.

MyWidgetProvider extends AppWidgetProvider

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    Log.d("MainActivity", "MyWidgetProvider # onUpdate");

    for (int i = 0; i < appWidgetIds.length; i++) {
        int appWidgetId = appWidgetIds[i];

        Intent intent = new Intent(context, MainActivity.class);
        intent.putExtra("from_widget", true);
        //intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
        views.setOnClickPendingIntent(R.id.widget_container, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);
    }

}
Run Code Online (Sandbox Code Playgroud)

flags android android-intent

7
推荐指数
1
解决办法
6749
查看次数

Roman Nurik的向导寻呼机 - 如何访问收集的数据?

我正在尝试使用Roman Nurik的库(https://plus.google.com/113735310430199015092/posts/6cVymZvn3f4)制作一个向导.

我无法从Review Fragment访问收集的数据.我在ReviewFragment中将mCurrentReviewItems公之于众,然后我就这样尝试了

mNextButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (mPager.getCurrentItem() == mCurrentPageSequence.size()) {
            ReviewFragment reviewFragment = (ReviewFragment)  mPagerAdapter.getItem(mPager.getCurrentItem());

            for (ReviewItem item : reviewFragment.mCurrentReviewItems)
                Log.d(MainActivity.TAG, "Item: " + item.getDisplayValue());
            }

        } else {
            if (mEditingAfterReview) {
                mPager.setCurrentItem(mPagerAdapter.getCount() - 1);
            } else {
                    mPager.setCurrentItem(mPager.getCurrentItem() + 1);
            }
        }
   }
});
Run Code Online (Sandbox Code Playgroud)

但它始终为空.

android nullpointerexception wizard

7
推荐指数
1
解决办法
2933
查看次数

Espresso半并行测试在静态对象上执行失败?

我正在尝试使用浓缩咖啡和junit4.问题似乎是我在activity.onCreate中静态初始化了代码并在activity.onDestroy中取消了初始化

现在,当我运行espresso时,测试似乎是"并行"运行.我将日志类添加到活动onCreate和onDestroy.

我所看到的是

onCreate = example.package.MainActivity@ABC
onCreate = example.package.MainActivity@JKL
onDestroy = example.package.MainActivity@ABC
onCreate = example.package.MainActivity@XYZ
onDestroy = example.package.MainActivity@JKL
onDestroy = example.package.MainActivity@XYZ
Run Code Online (Sandbox Code Playgroud)

当然,在第三次测试中它在NPE上失败,因为第二次测试的onDestroy在第三次onCreate之后运行(这使得静态代码无效)

这种行为是否正常?我可以先将浓缩咖啡强制用于拆解活动实例,然后再开始新的吗?谢谢!

android junit4 android-testing android-espresso

7
推荐指数
0
解决办法
288
查看次数

ActionBar下拉导航 - 方向更改将错误的片段放入

我有一个操作栏下拉导航.问题是当我切换到另一个片段,然后进行方向更改时,它会将第一个片段放入其中,即使我认为我正在正确处理savedInstanceState.问题似乎是onNavigationItemSelected被调用,所以..我将如何正确处理这个?我可以将savedInstanceState变量设为一个字段,但这感觉不对...

public class MainActivity extends FragmentActivity implements MyListFragment.OnArticleSelectedListener {

public static final String TAG = "MainActivity";

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(savedInstanceState != null) {
        Fragment savedFragment = getSupportFragmentManager().getFragment(savedInstanceState, "saved_fragment");
        Log.d(MainActivity.TAG, "savedInstanceState != null: " + savedFragment.getTag());

        getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.fragment_container, savedFragment, savedFragment.getTag())
        .commit();
    } else {

        Log.d(MainActivity.TAG, "savedInstanceState == null");

        getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.fragment_container, new MyListFragment(), MyListFragment.TAG)
        .commit();
    }

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    String[] array = new String[] { "Inzeráty", "Dummy frag" };
    SpinnerAdapter mSpinnerAdapter …
Run Code Online (Sandbox Code Playgroud)

navigation android orientation-changes android-actionbar drop-down-menu

6
推荐指数
1
解决办法
1970
查看次数

Espresso - 如何匹配 ActionBar 的可见性?

我试图做一个 Espresso 测试来检查 actionbar 是否隐藏/显示,但我似乎无法弄清楚如何将它与 Espresso.onView(...) 匹配。Afaik它没有ID,对吧?

非常感谢

android-actionbar android-espresso

6
推荐指数
1
解决办法
808
查看次数

共享时,launchMode 被 Google 文件应用覆盖吗?强制单个活动的新实例?

我有一个作为共享目标的应用程序。它是一个单活动架构,清单中带有 launchMode="singleTask" 。

所有其他应用程序在将数据共享到我的应用程序时,似乎都会遵守这一点,因此,即使该活动之前已打开,也会打开同一个实例。

然而,Google 文件似乎总是强制我的 Activity 的新实例,并且它始终保留在他们的任务中。

我调试了意图标志,但我对此不太聪明:

FLAG_ACTIVITY_FORWARD_RESULT|FLAG_ACTIVITY_NEW_TASK|FLAG_ACTIVITY_PREVIOUS_IS_TOP|FLAG_GRANT_READ_URI_PERMISSION|FLAG_RECEIVER_FOREGROUND
Run Code Online (Sandbox Code Playgroud)

我怎样才能防止这种情况发生?我不希望我的单个活动有超过 1 个实例。甚至 launchMode="singleInstance" 也不起作用。


<activity
            android:name=".MainActivity"
            android:launchMode="singleTask"
            android:windowSoftInputMode="adjustResize|stateHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="*/*" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEND_MULTIPLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="*/*" />
            </intent-filter>
        </activity>
Run Code Online (Sandbox Code Playgroud)

android launchmode android-activity

6
推荐指数
1
解决办法
372
查看次数