首先,讓我首先介紹一下Android開發的全新技術。當我點擊「這個」按鈕時,我試圖簡單地讓不同按鈕上的文字發生變化。我可以用setVisibility()改變可見性,所以我認爲我正確引用了按鈕 - 但是當我嘗試setText()時,我得到錯誤:「Can not resolve method setText(Java.Lang.String)'」Android/Java - setText onbuttonclick中的按鈕無法解析方法
爲什麼它會允許我更改可見性而不是文本?我需要做些什麼來糾正問題?
下面是我試圖改變文本的其中一個按鍵的XML部分:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/songbutton4"
android:layout_below="@+id/button4"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/button4"
android:layout_alignEnd="@+id/button4"
android:visibility="invisible" />
這裏是onclick事件的代碼:
public void onbutton1click(View v){
//on click turn the 4 buttons invisible, and show the other 5
View b1 = findViewById(R.id.button1);
b1.setVisibility(View.INVISIBLE);
View b2 = findViewById(R.id.button2);
b2.setVisibility(View.INVISIBLE);
View b3 = findViewById(R.id.button3);
b3.setVisibility(View.INVISIBLE);
View b4 = findViewById(R.id.button4);
b4.setVisibility(View.INVISIBLE);
View b5 = findViewById(R.id.button5);
b5.setVisibility(View.INVISIBLE);
View sb1 = findViewById(R.id.songbutton1);
sb1.setVisibility(View.VISIBLE);
sb1.setText("hello"); // THIS IS WHERE THE ERROR OCCURS
View sb2 = findViewById(R.id.songbutton2);
sb2.setVisibility(View.VISIBLE);
View sb3 = findViewById(R.id.songbutton3);
sb3.setVisibility(View.VISIBLE);
View sb4 = findViewById(R.id.songbutton4);
sb4.setVisibility(View.VISIBLE);
}
完美的解決方案。我試着用正確的代碼替換掉了正在使用的錯誤的「查看」代碼,並且它顯然工作正常。感謝您的回答,以及有關在偵聽器之前引用小部件的建議。我會牢記這一點。 [是的,這是在一個活動] – David