将字符串“R.id.text1”转换为TextView的int id

时间:2016-11-18 11:16:03

标签: java android textview layout-inflater

MainActivity.java

.start()

R.layout.picker

for(int i=1;i<=2;i++)
        {
            String commonId="R.id.text";
            final int index=i-1;
            commonId=commonId+i;
            Log.e("MSG",index+" "+commonId);

      Integer id= getResources().getIdentifier(commonId, "id", getPackageName());

            TextView day=(TextView)daysView.findViewById(R.id.text1);
            Log.e("MSG",id+" "+day +" "+commonId);
}

日志打印

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:gravity="center_horizontal"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp">

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:id="@+id/text1"
        android:text="MON"
        android:textStyle="bold"
        android:textColor="#000000"
        android:gravity="center_vertical|center_horizontal"
        android:background="@drawable/circle_shape"/>

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:id="@+id/text2"
        android:text="TUE"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_alignLeft="@+id/text"
        android:gravity="center_vertical|center_horizontal"
        android:layout_marginLeft="70dp"
        android:background="@drawable/circle_shape"/>

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:id="@+id/text3"
        android:text="WED"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_alignLeft="@+id/text2"
        android:gravity="center_vertical|center_horizontal"
        android:layout_marginLeft="70dp"
        android:background="@drawable/circle_shape"/>

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:id="@+id/text4"
        android:text="THU"
        android:textStyle="bold"
        android:textColor="#FFFFFF"
        android:layout_alignLeft="@+id/text3"
        android:gravity="center_vertical|center_horizontal"
        android:layout_marginLeft="70dp"
        android:background="@drawable/button_shape_select_category"/>

</RelativeLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:gravity="center_horizontal"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp">

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:id="@+id/text5"
        android:text="FRI"
        android:textStyle="bold"
        android:textColor="#000000"
        android:gravity="center_vertical|center_horizontal"
        android:background="@drawable/circle_shape"/>

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:id="@+id/text6"
        android:text="SAT"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_alignLeft="@+id/text5"
        android:gravity="center_vertical|center_horizontal"
        android:layout_marginLeft="70dp"
        android:background="@drawable/circle_shape"/>

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:id="@+id/text7"
        android:text="SUN"
        android:textStyle="bold"
        android:textColor="#FFFFFF"
        android:layout_alignLeft="@+id/text6"
        android:gravity="center_vertical|center_horizontal"
        android:layout_marginLeft="70dp"
        android:background="@drawable/button_shape_select_category"/>
</RelativeLayout>

此“选择器”视图在“活动”中膨胀。

我已经尝试过这个“可绘制”文件,它可以工作但不能获取视图的ID。我到处搜索这是语法但不在这里工作。 应用包是0 null R.id.text1 0 null R.id.text2 ,活动位于com.myexample.app包中。我不想在textView上编写7点击监听器,所以我想循环。

2 个答案:

答案 0 :(得分:1)

只需更改此

即可
String commonId="R.id.text";

到这个

String commonId="text";

答案 1 :(得分:0)

尝试这样做,

for (int i=0; i<7; i++) {
   int resId = getResources().getIdentifier("text" + i, "id", getPackageName());
   TextView textView = (TextView) view.findViewById(resId);
}