[英]setOnClickListener error - cannot resolve symbol
我想創建一個按鈕,單擊該按鈕時會顯示另一個意圖。
這是代碼:
<Button
android:text="Bine ati venit!"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/button1"
android:background="#479fc7"
android:textSize="40dp"
android:textColor="@color/colorPrimaryDark"
android:textStyle="normal|bold|italic"
android:textAllCaps="false"
android:fontFamily="casual"
android:onClick="next_page"/>
從 .java 類:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
}
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener()
{
public void onClick (View v){
next_page(v);
}
});
public void next_page(View v) {
Intent intent = new Intent(this, MapsActivity.class);
startActivity(intent);
}
我收到錯誤消息:“無法解析符號‘setOnClickListener’”、“從未使用過變量 onClick”、“; 預期”....
您應該將該特定片段放在OnCreate()
。 那為我解決了這個問題。
// 您必須將您鍵入的代碼移動到類方法中並按如下方式工作
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the View that shows the numbers category
TextView numbers = (TextView) findViewById(R.id.numbers);
// Set a click listener on that View
numbers.setOnClickListener(new View.OnClickListener() {
// The code in this method will be executed when the numbers View is clicked on.
@Override
public void onClick(View view) {
Intent numbersIntent = new Intent(MainActivity.this, NumberActivity.class);
startActivity(numbersIntent);
}
});
}
您需要像這樣更改代碼
Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener(){
public void onClick (View v){
next_page(v);
}
});
}
public void next_page(View v) {
Intent intent = new Intent(this, MapsActivity.class);
startActivity(intent);
}
如果您不在那里使用它,則不需要將 View 對象傳遞給next_page()
您可以在 xml 中使用方法名稱聲明 onClick 屬性,或者在 onCreate 方法中以編程方式設置它。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener()
{
public void onClick (View v){
next_page(v);
}
});
}
public void next_page(View v) {
Intent intent = new Intent(this, MapsActivity.class);
startActivity(intent);
}
您應該聲明按鈕變量並在oncreate()函數下編寫Setonclicklistner()函數。否則它將無法正常工作。
關於錯誤:“無法解析符號'setOnClickListener'”可能值得確保您通過添加導入了TextView
import android.widget.TextView;
到文件的頂部。
您只需要更改代碼的位置。
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener(){
public void onClick (View v){
next_page(v);
}
});
}
剪切代碼並將其粘貼到 OnCreate 方法中。 因為在按鈕創建后設置OnClickListener沒有意義。 這就是錯誤發生的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.