2016-11-18 3 views
-2

MainActivity.javaПреобразование String "R.id.text1" в целое идентификатор TextView

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); 
} 

R.layout.picker

<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> 

журнала печати

0 null R.id.text1 
0 null R.id.text2 

Это " выборщик "завышен в Activity.

Я пробовал это для «drawable» файлов, и он работает, но не для получения идентификаторов вида. Я искал везде, это синтаксис, но не работает здесь. приложение пакет com.myexample.app и деятельность в com.myexample.app.Activities упаковка. Я не хочу писать 7 кликов-слушателей в textView, поэтому я хочу сделать это в цикле.

ответ

1

Просто изменить

String commonId="R.id.text"; 

этому

String commonId="text"; 
+0

Работали, глупую ошибку – Shivam

+0

мое удовольствие помочь. –

0

попробовать делать так,

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

Что этот ответ добавляет мне? –

+0

Не используйте «R.id.text», просто используйте «текст» –

+1

Что именно я предлагаю ... –