0

を使用するsetId(D)と、次のエラー メッセージが表示されます。

The method setId() is undefined for the type MainActivity

この場合に使用できない場合、ID を動的setId()に設定する他の方法はありますか?TextView

主な活動:

...
public void onClick(View view) {
  ...
  if (D>=0) {screen();}
  D=D+1;
}

public void screen()  {
  setId(D);
  if (D==0) {
    TextView D = (TextView) findViewById(R.id.D);
    D.setText("the button was pressed: " +D+ "time");
  }
}
...

// I dont want to write twenty conditions
if (D==1) {
    TextView D1 = (TextView) findViewById(R.id.1);      
    D1.setText("some text" +num);
    }       
if (D==2) {
    TextView D2 = (TextView) findViewById(R.id.2);      
    D2.setText("some text" +num) ;
    }
if (D==3) {
    TextView D3 = (TextView) findViewById(R.id.3);      
    D3.setText("some text" +num) ;
    }
// and so on...

activity_main.xml:

<TextView        
  android:id="@+id/1"
  android:layout_width="wrap_content"
  android:layout_height="40dp"
  android:layout_alignParentLeft="true"
  android:layout_marginTop="20dp" />

<TextView        
  android:id="@+id/2"
  android:layout_width="wrap_content"
  android:layout_height="40dp"
  android:layout_alignParentLeft="true"
  android:layout_marginTop="40dp" />

<TextView
  android:id="@+id/3"
  android:layout_width="wrap_content"
  android:layout_height="40dp"
  android:layout_alignParentLeft="true"
  android:layout_marginTop="60dp" />

...
4

2 に答える 2

2

ID は、変更したり、変数として使用したりするためのものではありません。ビューに添付されたメタデータについては、view.tag http://developer.android.com/reference/android/view/View.html#getTag()をご覧ください。

タグでビューを取得することもできます。http://developer.android.com/reference/android/view/View.html#findViewWithTag(java.lang.Object)

カウンターを格納する他の方法があることに注意してください。通常、アクティビティの単純なフィールドで十分です。

于 2013-07-23T16:09:46.503 に答える