1

これは私を完全に夢中にさせており、何が起こっているのかわかりません. クリック可能な 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>

私のコードでは、テキストビュー「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());

同じエラーが発生します。レイアウト内の他のすべてのビューは簡単に見つけられ、問題なく更新されます。この 1 つの TextView だけが問題を引き起こしています。誰が問題が何であるか知っていますか?

4

4 に答える 4

2

tempBG.size()このように文字列に設定してみてください

bgCountTV.setText(""+tempBG.size());

これはうまくいくはずです

于 2013-09-16T17:30:06.857 に答える
0

問題はこのコードにあります

bgCountTV.setText(tempBG.size());

tempBG.size()このコードは、R.string.VARIABLE_NAME のような文字列リソース IDとして想定されているint値を返しています。これには、TextView が ID として想定している対応する int 値があります。

できること

 bgCountTV.setText(tempBG.size()+"");

また

 bgCountTV.setText(String.ValueOf(tempBG.size()));

また

 bgCountTV.setText(tempBG.size().toString());
于 2013-09-16T17:53:41.177 に答える