小编Pru*_*hvi的帖子

RecyclerView.Adapter的onCreateViewHolder和onBindViewHolder方法没有被调用

我正在尝试通过遵循该链接中提供的示例项目在我的项目中实现TwoWayView.我实现了一切,我的代码工作没有任何错误,但实际的List没有得到膨胀.在调试时我发现适配器设置正确,并且该getItemCount方法也返回正数,但其他两个重写方法onCreateViewHolderonBindViewHolder没有被调用.我不知道为什么它不起作用.请参阅下面的部分代码,任何帮助表示赞赏.谢谢.

MyAdapter.java

public class MyAdapter extends RecyclerView.Adapter < MyViewHolder > {

    private MySimpleCursorAdapter mCursor;
    //some other private fields here

    public MyAdapter(Context context, Cursor c, int resourceId, ViewType viewType, String containerId) {
        mCursor = new MySimpleCursorAdapter(a1,a2,a3,a4,a5,a6); //Passed necessary arguments
        ....
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Log.w("onCreateViewHolder", "--------->executed"); //Line not executed
        final View view = mCursor.newView(mContext, mCursor.getCursor(), parent);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) …
Run Code Online (Sandbox Code Playgroud)

android simplecursoradapter android-viewholder android-recyclerview

4
推荐指数
1
解决办法
8070
查看次数

如何更改操作栏中下拉菜单的背景颜色

我正在开发一个 Android 应用程序,在设计操作栏时遇到一些问题。我使用的是带有白色图标的深色操作栏。当我单击溢出图标时,会弹出一个下拉菜单。一切都很好,但我需要带有红色文本的下拉菜单的浅色背景。我尝试过编辑主题,styles.xml但当我使用浅色主题时,我只能更改下拉菜单的背景颜色。

Theme.Base.AppCompat.Light.DarkActionBar当我将 更改为时,我可以获得浅色下拉菜单,Theme.Base.AppCompat.Light但其他图标(例如“搜索”)变得非常浅并且几乎不可见(参见第二张图片)。如何将下拉菜单上的文本颜色从黑色更改为红色并使“搜索”图标可见。

在此输入图像描述 在此输入图像描述

这是更深入了解的代码

样式.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.Base.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:popupMenuStyle">@style/MyPopUpMenu</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
    parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/gloryred</item>
</style>

<style name="MyPopUpMenu"
    parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:popupMenuStyle">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

菜单操作.xml

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<item android:id="@+id/action_search"
    android:title="@string/action_search"
    android:icon="@drawable/ic_action_search"
    com.example.unitedstates.app:showAsAction="ifRoom"
    com.example.unitedstates.app:actionViewClass="android.widget.SearchView"/>

<item android:id="@+id/action_overflow"
    android:title="@string/action_overflow"
    android:icon="@drawable/ic_action_overflow"
    com.example.unitedstates.app:showAsAction="ifRoom">
    <menu>
        <item
            android:id="@+id/action_help"
            android:title="@string/action_help"
            android:icon="@drawable/ic_action_help"
            android:showAsAction="never"/>
        <item
            android:id="@+id/action_about"
            android:title="@string/action_about"
            android:icon="@drawable/ic_action_about"
            android:showAsAction="never"/>
        <item
            android:id="@+id/action_feedback" …
Run Code Online (Sandbox Code Playgroud)

android background-color android-menu android-actionbar drop-down-menu

3
推荐指数
1
解决办法
9640
查看次数

首次触摸事件后如何隐藏状态和导航栏?

我一直在使用这些标志SYSTEM_UI_FLAG_FULLSCREENSYSTEM_UI_FLAG_HIDE_NAVIGATION隐藏和显示状态栏和导航栏。他们工作正常。我在活动开始时将它们隐藏起来,我想在触摸事件中再次显示它们。Android会在第一次触摸事件时自动显示它们(此第一次触摸事件不会传递给我的应用程序)。我想sendMessageDelayed()在一段时间后用来隐藏两个栏。我如何使用此首次触摸事件?

android show-hide android-statusbar

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

SimpleDateFormat显示错误的分钟,秒和毫秒

我已经编写了这个示例程序,我希望将日期转换为另一种格式.使用简单的日期格式时,我看不到预期的日期.

 public class TestDate {

    /**
     * @param args
     */
    public static void main(String[] args) {
        SimpleDateFormat originalformat = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSSSSS");
        SimpleDateFormat targetformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
        try {

            //Use Simple Date Format
            Date date = originalformat.parse("2015-04-09-17.18.48.677862");
            System.out.println("Using SDF "+targetformat.format(date));

            //Use Manual Translation
            String eventTime = "2015-04-09-17.18.48.677862";
            StringBuffer timeBuffer = new StringBuffer();
            for (int i = 0; i < eventTime.length(); i++) {
                if (i == 10) {
                    timeBuffer.append(" ");
                    continue;
                } else if (i == 13 || i == 16) …
Run Code Online (Sandbox Code Playgroud)

java datetime simpledateformat

0
推荐指数
2
解决办法
1779
查看次数