-1

首先,我对 android 很陌生,我有两个 android:id 。

例如:[ R.id.custom_font ] 和 [ R.id.product_name ]

在 .java 文件中

 TextView tv = (TextView)findViewById(R.id.custom_font);
Typeface cFont = Typeface.createFromAsset(getAssets(), "fonts/jcc.ttf");
tv.setTypeface(cFont);


adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name,  R.id.custom_font, products);
lv.setAdapter(adapter);

当我将它们放在一个文本视图中时,它会显示一条错误消息 [属性“android:id”已为元素“TextView”指定]

在 .xml 文件中

    <TextView

    android:textColor="?android:textColorPrimary"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/custom_font"
    android:id="@+id/product_name" //Attribute "android:id" was already specified for element "TextView"
    android:textSize="15sp" />

如何在单个文本视图中传递两个 android:id?

或者任何人如果请帮助我下载这个

提前致谢。

4

2 回答 2

1

您只能将一个 Id 设置为 UI 小部件。删除其中一个 ID。您可以为 ArrayAdapter 使用相同的 ID。

于 2012-12-01T01:32:57.097 回答
0

与 Ahmad 的答案几乎相同,但根据评论,您似乎没有得到它,所以像这样更改您的 XML(删除给出错误的行):

<TextView
android:textColor="?android:textColorPrimary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/custom_font"
android:textSize="15sp" />

然后像这样更改Java代码:

TextView tv = (TextView)findViewById(R.id.custom_font);
Typeface cFont = Typeface.createFromAsset(getAssets(), "fonts/jcc.ttf");
tv.setTypeface(cFont);


adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.custom_font,  R.id.custom_font, products);
lv.setAdapter(adapter);

如果您的问题与 ArrayAdapter 的构造函数的两个参数相同而困扰您,请尝试这样...

像这样更改 XML:

<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/product_name">

<TextView
android:textColor="?android:textColorPrimary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/custom_font"
android:textSize="15sp" />

</FrameLayout>

然后,您可以保留与您所拥有的相同的 Java 代码......

如果这仍然不能解决它,我真的很困惑你的问题到底是什么。

于 2012-12-01T14:45:55.473 回答