當我使用setId(D)
,我收到此錯誤信息:爲什麼我收到SETID()未定義
The method setId() is undefined for the type MainActivity
如果我不能在這種情況下使用setId()
,有沒有其他的方法來設置一個ID爲TextView
動態?
MainActivity:
...
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" />
...
因爲'Activity'沒有'setId()'方法。你需要在'View'或類似的地方使用它。但是,看看你的代碼,我對你在做什麼感到困惑。一個id不應該被用作計數器。 – Geobits
謝謝你的答案。它不會是一個縮短的計數器。每個TextView將根據其他算法由文本和數字填充。 – user2556278