Fristly我对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?
或者任何人如果能帮助我Download This
提前致谢。
答案 0 :(得分:1)
您只能将一个ID设置为UI小部件。删除其中一个Id。您可以为ArrayAdapter使用相同的Id。
答案 1 :(得分: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代码......
如果仍然无法解决问题,我真的很困惑你的问题是什么。