2012-06-27 29 views
0

我有一个按钮,并在我的XML文件中TableLayout定义为图像对象:的Android image.setImageResource(..)导致按钮文本dissappear

<Button 
        android:id="@+id/buttonNext" 
        android:layout_width="100dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.99" 
        android:gravity="center" 
        android:padding="1sp" 
        android:text="@string/buttonNext"/> 
    <ImageView 
        android:id="@+id/ImageView02" 
        android:layout_width="100dp" 
        android:layout_height="fill_parent" 
        android:layout_weight="0.33" 
        android:src="@drawable/sixthstring" 
        android:contentDescription="@string/chart_description"/> 

有下一个的OnClickListener上钩按钮,它一切正常。

我创建了一个OnClickListener的ImageView的,把下面的代码:

imgChart.setOnClickListener(onChartClick); 

。 。 。

private OnClickListener onChartClick = new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      imgChart.setImageResource(R.drawable.newPngImage); 
     } 
    }; 

该应用程序运行良好,即使当我点击图像并检索新图像。但是,如果手机睡觉,然后返回或如果我点击菜单按钮(都导致重画?)文本下一步按钮消失(imageView中的图像很好,按钮本身仍然存在) - 奇怪的。

如果我注释掉setImageResource方法,它一切正常。

回答

0

使用setBackgroundResource(id),而不是setImageResource(id)

+0

感谢您的回复。我也尝试了这一点,按钮文字仍然消失。事实上,用这种方法不会显示新图像,而是保留旧图像。 –

3

有完全一样的问题,你托尼。 我使用“setImageDrawable”来代替,而且所有东西都还在他们的位置上,完美无缺!

+0

其他具有相同问题的人的参考。它似乎发生在4.1.1上。如果在布局xml文件中有'TableLayout'和'ImageView'。调用'ImageView.setImageResource'会导致'TableLayout'被解散。 – Arst