2

今日、私は自分のアプリの 1 つをテストとして純粋な kotlin ビルドに変換することに取り組んでいます。現在、アレイ アダプターに苦労しており、このエラーが発生しています。

File  from xml type layout resource ID #0x7f0c000a

これは、エラーのある私のアクティビティです。

class KotlinTest : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val arr = Array(5, Int::toString)

        verticalLayout {


            id = R.id.test_text_layout

            textView {
                width = matchParent
                height = matchParent
                id = R.id.test_text_item
            }


            listView {
                id = R.id.test_text_view
            }
        }

        val cardAdapter: ArrayAdapter<String>? = ArrayAdapter(ctx, R.id.test_text_layout, arr)

        val tempView: ListView = findViewById(R.id.test_text_view) as ListView

        tempView.adapter = cardAdapter

        cardAdapter?.notifyDataSetChanged()

    }

}

これが ids.xml ファイルです。

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

    <item name="test_text_item" type="id"/>
    <item name="test_text_view" type="id"/>
    <item name="test_text_layout" type="id"/>

</resources>

私はいくつかのことを試しましたが、運がなかったので、ガイダンスをいただければ幸いです。私は何かばかげたことを見逃しているだけだと思います。

4

1 に答える 1

4

この行を削除<item name="test_text_layout" type="id"/>

res/layoutdirにファイルを作成し、それを呼び出してtest_text_layout.xml、次のコンテンツを追加します

<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

アクティビティのコードで

val cardAdapter = ArrayAdapter(ctx, R.layout.test_text_layout, arr)

問題の原因 - 間違ったパラメーターを渡しました。ドキュメントから

resource int:ビューをインスタンス化するときに使用する TextView を含むレイアウト ファイルのリソース ID。

xml を完全に取り除きたい場合は、拡張する必要がありますArrayAdapter

于 2016-12-12T10:12:07.440 に答える