小编Hir*_*tel的帖子

在RecyclerView中检测到不一致,如何在滚动时更改RecyclerView的内容

我正在使用RecyclerView显示项目的名称.我的行包含单行TextView.项目名称存储在List<String> mItemList.

要更改内容RecyclerView,我替换字符串mItemList并调用notifyDataSetChanged()RecyclerViewAdapter.

但是如果我尝试更改mItemListRecyclerView滚动时的内容,有时它会给我 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 157(offset:157).state:588

如果尺寸mItemList小于之前,就会发生这种情况.那么改变内容的正确方法是RecyclerView什么?这是一个错误RecyclerView吗?

这是Exception的完整堆栈跟踪:

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 157(offset:157).state:588
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3300)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3258)
        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1803)
        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1302)
        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1265)
        at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1093)
        at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:956)
        at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:2715)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
        at android.view.Choreographer.doCallbacks(Choreographer.java:555)
        at android.view.Choreographer.doFrame(Choreographer.java:524)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4921)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

57
推荐指数
6
解决办法
5万
查看次数

如何在android中的videoview中播放.mp4视频?

我正在开发视频播放器应用程序,我想在原生视频中播放.mp4视频.我无法播放 视频使用的URL.我收到错误抱歉,该视频无法播放,也我不能够播放下载的视频在本地videoview.

我在videoview中播放视频的代码:

String mUrl = "http://www.servername.com/projects/projectname/videos/1361439400.mp4";

VideoView mVideoView  = (VideoView)findViewById(R.id.videoview)
videoMediaController = new MediaController(this);
mVideoView.setVideoPath(mUrl);
videoMediaController.setMediaPlayer(mVideoView);
mVideoView.setMediaController(videoMediaController);
mVideoView.requestFocus();
mVideoView.start();
Run Code Online (Sandbox Code Playgroud)

请分享您的想法.

谢谢.

mp4 android video-streaming android-videoview

37
推荐指数
4
解决办法
11万
查看次数

如何在Android中使用ACTION_SEND共享图像+文本?

我想在android中使用ACTION_SEND共享Text + Image,我使用下面的代码,我只能共享Image但我不能与它共享Text,

private Uri imageUri;
private Intent intent;

imageUri = Uri.parse("android.resource://" + getPackageName()+ "/drawable/" + "ic_launcher");
intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "Hello");
intent.putExtra(Intent.EXTRA_STREAM, imageUri);
intent.setType("image/*");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

对此有何帮助?

android intentfilter android-intent android-sharing

37
推荐指数
3
解决办法
8万
查看次数

如何在android中更改EditText气泡颜色(光标下)?

如何更改EditTextandroid中的气泡颜色,我可以更改光标drawable但我想改变Bubble的颜色,请分享它的想法.

参考截图:

在此输入图像描述

任何帮助,将不胜感激.

android colors cursor drawable android-edittext

23
推荐指数
2
解决办法
6684
查看次数

如何在Webview中向下滚动时隐藏ActionBar /工具栏

在Google Chrome和Play商店中.应用程序可以在滚动时隐藏操作栏,并允许用户方便地浏览.请帮我这样做.

我使用onTouchListener进行webview它不起作用.

mWebView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        getSupportActionBar().show();
                            break;
                    case MotionEvent.ACTION_UP:
                        getSupportActionBar().hide();
                            break;
                    default: break;
                }
                return false;
            }
        });
Run Code Online (Sandbox Code Playgroud)

提前致谢

android android-webview android-scrollview android-scroll

17
推荐指数
2
解决办法
2万
查看次数

Android:在RecyclerView中的项目之间添加分隔符

我正在使用RecyclerView圆角,使其圆角我在XML下面使用:

view_rounded.xml: -

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#008f8471"/>
    <stroke android:width="2dp" android:color="#ffffff" />
    <corners android:radius="10dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

fragment_main.xml: -

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/view_rounded"/>
Run Code Online (Sandbox Code Playgroud)

adapter_main.xml: -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textTitle"
        style="@style/AppTheme.ListTextView"
        />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

style.xml: -

<style name="AppTheme.ListTextView" parent="android:Widget.Material.TextView">
  <item name="android:gravity">left</item>
  <item name="android:layout_width">match_parent</item>
  <item name="android:layout_height">wrap_content</item>
  <item name="android:textAllCaps">false</item>
  <item name="android:padding">10dp</item>
  <item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Medium</item>
  <item name="android:textColor">@color/tabsScrollColor</item> 
  <item name="android:textStyle">bold</item> 
</style>
Run Code Online (Sandbox Code Playgroud)

获取(没有项目分隔符):

在此输入图像描述

必需(带项目分隔符):

在此输入图像描述

xml android android-styles android-recyclerview

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

如何在android中以编程方式获取相对 - 线性布局的宽度和高度?

我需要相对/线性布局的运行时尺寸.

activity_home.xml:

<RelativeLayout
    android:id="@+id/rlParent"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

HomeActivity.java:

private int width, height;

RelativeLayout rlParent = (RelativeLayout) findViewById(R.id.rlParent);

w = rlParent.getWidth();
h = rlParent.getHeight();

Log.i("Width-Height", width+"-"+height);
Run Code Online (Sandbox Code Playgroud)

请分享你的想法.

android android-linearlayout android-relativelayout

12
推荐指数
3
解决办法
2万
查看次数

如何关闭Android BackPress上的抽屉布局?

我按导航抽屉,然后如果我按下后退按钮,应用程序退出而不是返回上一个活动.如果我更改xml文件,则不会发生此问题.所以我认为问题出在xml文件中.谁能告诉我这是什么问题?这是xml代码

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="500dp"
    android:layout_height="200dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/blue_train" />

<TextView
    android:id="@+id/trainName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="200dp"
    android:layout_marginLeft="14dp"
    android:text="Train Name"
    android:textColor="@color/bluedark"
    android:textSize="15sp" />

<EditText
    android:id="@+id/etName"
    android:layout_width="150dp"
    android:layout_height="40dp"
    android:layout_alignBaseline="@+id/trainName"
    android:layout_alignBottom="@+id/trainName"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/trainName"
    android:background="@drawable/line"
    android:ems="10" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/getS"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/etName"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="40dp"
    android:background="@drawable/button2"
    android:text="Get Train Schedule"
    android:textColor="@color/white" />
Run Code Online (Sandbox Code Playgroud)

`

android

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

DataBinding:如何使用BaseActivity /如何使用抽象

我正在尝试将DataBinding添加到我的应用程序中.在我的应用程序中,我有一个BaseActivity,它有一个工具栏和一个FrameLayout.FrameLayout是扩展BaseActivity的活动的容器.如何在我的BaseActivity和扩展活动中添加数据绑定?

我将在没有DataBinding的情况下共享我的代码:

这是我的BaseActivity.java:

public class BaseActivity extends AppCompatActivity {


    @Override
    public void setContentView(@LayoutRes int layoutResID) {

        LinearLayout container = (LinearLayout) getLayoutInflater().inflate(R.layout.activity_base, null);
        FrameLayout activityContent = (FrameLayout) container.findViewById(R.id.activityContent);
        getLayoutInflater().inflate(layoutResID, activityContent, true);

        super.setContentView(container);

        Toolbar toolbar = (Toolbar) container.findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getItemId() == android.R.id.home) {
            finish();
        }
        return super.onOptionsItemSelected(menuItem);
    }

    public void setTitle(String title) {
        getSupportActionBar().setTitle(title);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是activity_base.xml:

<?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"           
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools">

        <include
            android:id="@+id/toolbarLayout"
            layout="@layout/toolbar" …
Run Code Online (Sandbox Code Playgroud)

android abstract-class abstraction android-databinding

10
推荐指数
3
解决办法
3513
查看次数

Android中Abstract类的最佳示例

我试图在Android中设计一个抽象类和方法,并通过从我的父Activity类扩展类来调用这些方法,但我不知道如何调用我的抽象方法.

MyCode:

MainActivity.java

public class MainActivity extends MyActivity {

    @Override
    public void onTest() {

       Log.d("MyLog", "onTest");

    } }
Run Code Online (Sandbox Code Playgroud)

MyActivity.java

public abstract class MyActivity extends Activity {

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

    }

public abstract void onTest(); }
Run Code Online (Sandbox Code Playgroud)

所以这是上面的代码片段,请告诉我,如何在Android中使用Abstract,因为我之前从未这样做过.

android abstract-class abstract-methods

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