我有这样的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<me.amasawa.studchat.views.MessageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test"
android:layout_gravity="center" android:singleLine="false"
android:autoText="false" android:background="@drawable/text_view_message" android:padding="1dp"
android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="2dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Это очень длинное сообщение для проверки разметки. Ну как?"
android:layout_gravity="center"
android:layout_toRightOf="@+id/textView" android:layout_alignBaseline="@+id/textView"
android:layout_marginLeft="5dp"/>
</RelativeLayout>
我想多次充气。如何识别第二个TextView以填充数据?也许是这样的:
RelativeLayout tmp = getLayoutInflater().inflate(R.layout.message, null);
TextView tv = (TextView) tmp.findViewByID(...);
tv.setText(data);
但是id对于所有应用都是唯一的。在这种情况下我应该使用什么?
答案 0 :(得分:0)
当您为视图充气时,您将拥有一个父视图。在这里,比如说parentView并说上面textview的id是textview然后你可以运行以下代码来识别TextView,如下所示: -
TextView textView = (TextView)parentView.findViewById(R.id.textview);
textView.setText("Your desiredvalue");
答案 1 :(得分:0)
如果在列表视图中使用它,则应在getView()方法中调用findViewById()
private String[] data={"string1","string2","string3"}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
convertView.findViewById(R.id.textView).setText(data[position]);
}
您的输出列表看起来像
string1
string2
string3
答案 2 :(得分:0)
您可以使用其父ID访问该第二个文本视图。
首先,您需要为该textview定义id。当您将其包含在主布局中时,还需要定义其父ID。
然后您可以通过该ID访问该父级。
使用这个膨胀的父母,你可以使用parentview.findviewbyid(R.id.textviewid)
;