void null对象引用

时间:2016-02-18 12:13:45

标签: android

你好,任何人都可以帮我解决这个问题我不明白到底是什么问题,你好任何人都可以帮助我解决这个问题我不明白到底是什么问题你好,任何人都可以帮我解决这个问题我不知道明白究竟是什么问题,你好,任何人都可以帮助我解决这个问题我不明白究竟是什么问题

MainActivity.java

    public class MainActivity extends AppCompatActivity {

     Button btnSearch,btnDailyEntry,btnNewCust;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnSearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btnSearch = (Button)findViewById(R.id.btn_search) ;
                Intent intent = new Intent(v.getContext(),Search.class);
                startActivity(intent);
            }
        });
        btnNewCust.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btnDailyEntry = (Button)findViewById(R.id.btn_daily_entry) ;
                Intent intent = new Intent(v.getContext(),NewCust.class);
                startActivity(intent);
            }
        });
        btnDailyEntry.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btnNewCust = (Button)findViewById(R.id.btn_new_cust);
                Intent intent = new Intent(v.getContext(),DailyEntry.class);
                startActivity(intent);
            }
        });

    }


}

activity_main.xml中

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
    android:orientation="vertical"
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Daily Entry System"
        android:textColor="@android:color/holo_blue_dark"
        android:textSize="20dp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Search"
        android:id="@+id/btn_search" />


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Daily Entry"
        android:id="@+id/btn_daily_entry" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Cust"
        android:id="@+id/btn_new_cust" />
</LinearLayout>

3 个答案:

答案 0 :(得分:1)

您必须先找到该按钮,然后设置onClick()

btnSearch = (Button) findViewById(R.id.buttonId);

答案 1 :(得分:1)

您从未初始化按钮。

添加

btnSearch = (Button)findViewById(R.id.btn_search);
btnNewCust = (Button)findViewById(R.id.btn_new_cust);
btnDailyEntry = (Button)findViewById(R.id.btn_daily_entry);

之后

 setContentView(R.layout.activity_main);

注意:正常声明后,btnSearch等中的默认值为null。要对其执行任何操作,您需要使用适当的引用对其进行初始化,否则您将获得NullPointerException。很抱歉,但非常基本的Java例外。

答案 2 :(得分:0)

在设置点击监听器之前,先按照xml id初始化按钮:

btnSearch = (Button) findViewById(R.id.btn_search);
btnDailyEntry = (Button) findViewById(R.id.btn_daily_entry);
btnNewCast = (Button) findViewById(R.id.btn_new_cust);


//Now set their onClickListeners..