这让我非常疯狂,我不知道发生了什么。 我在可点击的RelativeLayout中有一个带有TextView的xml布局。
<RelativeLayout
android:id="@+id/bg_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:background="@color/almost_black"
android:clickable="true"
android:onClick="goToBG"
android:padding="10dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="Go To B.G."
android:textColor="@color/white"
android:textSize="20sp" />
<ImageView
android:id="@+id/bg_arrow"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="-10dp"
android:src="@drawable/arrow_icon" />
<TextView
android:id="@+id/current_bg_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/bg_arrow"
android:text="3"
android:textColor="@color/holo_blue"
android:textSize="22sp" />
</RelativeLayout>
现在在我的代码中,我尝试更新textview“current_bg_count”
private void updateBGCount(){
try{
RelativeLayout bgSection = (RelativeLayout) findViewById(R.id.bg_section);
TextView bgCountTV = (TextView) bgSection.getChildAt(2);
bgCountTV.setText(tempBG.size());
}
catch(Exception e){
e.printStackTrace();
Logger.d(TAG, "exception in updateBGCount");
}
}
虽然找到了RelativeLayout没有问题,但是在setText的行上给出了ResourceNotFountException。即使我尝试通过这样的id找到它:
TextView bgCountTV = (TextView) findViewById(R.id.current_bg_count)
bgCountTV.setText(tempBG.size());
它给出了同样的错误。 布局中的所有其他视图都可以轻松找到并更新。只有这一个TextView给了我这个问题。有谁知道问题是什么?
答案 0 :(得分:4)
您需要在此行将size
的{{1}}转换为ArrayList
String
由于 setText(tempBG.size())
返回tempBG.size()
,因此int
正在寻找具有setText()
的任何返回资源。您正在使用this setText(ResId int) method,如果您要使用id
来设置文字,则会使用该{{3}}。
所以将其改为
string resource
答案 1 :(得分:2)
尝试将tempBG.size()
设置为这样的字符串
bgCountTV.setText(""+tempBG.size());
这应该有效
答案 2 :(得分:0)
答案 3 :(得分:0)
问题在于此代码
bgCountTV.setText(tempBG.size());
tempBG.size()
此代码返回 int 值,它假设为字符串资源ID类似于R.string.VARIABLE_NAME因为它具有相应的int TextView假定为id的值
你能做什么
bgCountTV.setText(tempBG.size()+"");
OR
bgCountTV.setText(String.ValueOf(tempBG.size()));
OR
bgCountTV.setText(tempBG.size().toString());