Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TextView在更新和滚动时绘制乱码文本_Android - Fatal编程技术网

Android TextView在更新和滚动时绘制乱码文本

Android TextView在更新和滚动时绘制乱码文本,android,Android,我创建了一个测试android应用程序,它在RabbitMQ服务器上侦听主题,并在文本视图中显示消息 除了添加到“输出”文本视图中的每一条新消息上的新文本都被绘制在旧文本上之外,所有这些都可以正常工作。当我滚动时也会发生同样的情况,如第二幅图所示。当应用程序转到后台并再次激活时,文本将再次正常显示(见图1) 我的布局非常简单:我做错了什么 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" a

我创建了一个测试android应用程序,它在RabbitMQ服务器上侦听主题,并在文本视图中显示消息

除了添加到“输出”文本视图中的每一条新消息上的新文本都被绘制在旧文本上之外,所有这些都可以正常工作。当我滚动时也会发生同样的情况,如第二幅图所示。当应用程序转到后台并再次激活时,文本将再次正常显示(见图1)

我的布局非常简单:我做错了什么

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="60dp" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Connection status" />

<TextView
    android:id="@+id/status"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:saveEnabled="false"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Received messages:" />

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <TextView
        android:id="@+id/output"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:saveEnabled="false"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</ScrollView>
尝试从所有情况中删除invalidate()方法调用,如果它不能解决问题,请在xml中将其放入ScrollView属性的TextView(id=output)中

 android:cacheColorHint="#00000000"
尝试从所有情况中删除invalidate()方法调用,如果它不能解决问题,请在xml中将其放入ScrollView属性的TextView(id=output)中

 android:cacheColorHint="#00000000"

我也有同样的问题。就我而言,这就是发生的事情以及我是如何解决的:

  • 首先,我添加了具有全屏属性的第二个活动(通过 eclipse向导)

  • 然后我决定不使用那种奇特的动画全屏,所以我
    编辑布局XML文件,并将其更改为普通相对视图

  • 应用程序清单文件指示此活动仍在使用 全屏主题

  • 我已经删除了那些行,问题解决了


如果您为布局设置了全屏主题,请尝试将其更改为应用程序主主题。

我也遇到了同样的问题。就我而言,这就是发生的事情以及我是如何解决的:

  • 首先,我添加了具有全屏属性的第二个活动(通过 eclipse向导)

  • 然后我决定不使用那种奇特的动画全屏,所以我
    编辑布局XML文件,并将其更改为普通相对视图

  • 应用程序清单文件指示此活动仍在使用 全屏主题

  • 我已经删除了那些行,问题解决了


如果您为版面设置了全屏主题,请尝试将其更改为应用程序主主题。

谢谢您的建议。我尝试了分开和一起:唉,这并不能解决我的问题。我对这个问题感到困惑,在我的其他应用程序中,我从来没有遇到过这样的问题。这应该很简单,对吧?是的,通常你不应该有这个问题。另一个可能导致这种情况的问题是,可能您的处理程序刷新太多,以至于您的设备无法达到处理程序的频率,请尝试将处理程序的频率降低以下代码。Handler=newhandler();postdayed(new Runnable(){public void run(){//put your update code here},5000(-或另一个数字-);这意味着你的处理程序将在每5000毫秒刷新一次,如果它看起来太快/太慢,你可以修改它。这对我不起作用,因为我使用textview的内容作为缓存(可能这是我的问题)?->String newText=DateUtil.getClockTimeMillis()+“”+(String)msg.obj+“\n”+oldText;hımm可能是。另一种方法是增加为应用程序分配的缓存内存大小。确定尝试使用单独的字符串字段缓存文本,但没有帮助:(我不认为处理程序是问题所在,因为它发生在滚动到时:我声明文本视图的方式肯定有问题。谢谢你的建议。我尝试了分开和一起:唉,这并不能解决我的问题。我对这个问题感到困惑,在我的其他应用程序中,我从来没有这样的东西。这应该很简单吧?是的,正常您不应该有这个问题。另一个可能导致这个问题的问题是,可能您的处理程序刷新太多,所以您的设备无法达到处理程序的频率,请尝试将处理程序的频率降低以下代码。handler handler=new handler();handler.postDelayed(new Runnable(){public void run()){//将更新代码放在这里},5000(-或另一个数字-);这意味着处理程序将在每5000毫秒刷新一次,如果它看起来太快/太慢,您可以修改它。这对我不起作用,因为我使用textview的内容作为缓存(可能这是我的问题)?->String newText=DateUtil.getClockTimeMillis()+“”+(String)msg.obj+“\n”+oldText;可能是hımm。另一种方法是增加为应用程序分配的缓存内存大小。确定尝试使用单独的字符串字段缓存文本,但没有帮助:(我不认为处理程序是问题所在,因为它发生在滚动到时:我声明TextView的方式一定有问题。我完全按照您描述的那样,首先生成一个全屏活动,然后更改为正常,实际上样式仍然是全屏的。不幸的是,当项目关闭时,我无法再测试代码了(我们不再需要那个测试代码了)。但我认为你在yoiur分析和解决方案中是对的。我完全按照你描述的那样做了,首先生成了一个全屏活动,然后更改为正常的,实际上样式仍然是全屏的。不幸的是,当项目结束时,我不能再测试代码了(我们不再需要那个测试代码了).但我认为你的分析和解决方案是正确的。