[英]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); } }
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.