簡體   English   中英

添加Android Studio的setOnClickListener時發生錯誤

[英]Error as soon as I add setOnClickListener Android Studio

因此,對於一個學校項目,我正在制作一個應用程序,但我遇到了麻煩。我的主要班級上有一個按鈕。該班級的XML代碼:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.larsb.csvvg.Home" android:background="@drawable/home"> <Button android:id="@+id/Lariks" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Button" android:visibility="visible" /> <Button android:id="@+id/Salland" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="45dp" android:text="Button" android:visibility="visible" android:layout_alignTop="@+id/Lariks" android:layout_alignLeft="@+id/Lariks" android:layout_alignStart="@+id/Lariks" /> <Button android:id="@+id/CSG" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:visibility="visible" android:layout_below="@+id/Salland" android:layout_alignLeft="@+id/Salland" android:layout_alignStart="@+id/Salland" /> </RelativeLayout> 

所以我想做的是,當我點擊Lariks時,我切換到一個新的活動。 我嘗試使用以下代碼執行此操作:

 public class MainActivity extends AppCompatActivity { private static int WELCOME=4000; Button lariks; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lariks = (Button)findViewById(R.id.Lariks); lariks.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { } }); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent=new Intent(MainActivity.this,Home.class ); startActivity(intent); finish(); } },WELCOME); } } 
在公共無效的onClick(view)事情中,我得到了用於切換活動的代碼,這不是問題。 問題是,一旦我添加:

 lariks.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { } }); 

該應用程序無法啟動。 它啟動了模擬器,但一直說應用程序已停止。 有人知道為什么會這樣嗎? 如果我刪除了那部分代碼,則該應用程序實際上會運行。

您的帶有android:id="@+id/Lariks" Button不在activity_main布局中(如tools:context="com.example.larsb.csvvg.Home"和您的崩潰所證明)。 因此, findViewById(R.id.Lariks)返回null,並且嘗試對此null引用調用setOnClickListener()會導致崩潰。

您的findViewById() - setOnClickListener()對可能應該在Home活動中,或者按鈕應該在activity_main布局中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM