日历对话框按钮onclick:空对象引用上的“ void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)”

时间:2018-12-21 12:19:23

标签: java android xml android-studio

我知道这个问题已经问了很多遍了。但其中大多数是特定的。就我而言,请尝试所有可能的解决方法。任何帮助表示赞赏吗? ps。我是一个初学者,我没有显示来自Java的一些代码,我确定它不会影响此处的问题。另外,我的主要功能是,打开一个带有日历的对话框,以在用户单击按钮(btn_pf_dob)时选择一个日期,而当用户选择它时,所选日期将显示在同一按钮上。

错误:

java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.name.appname / com.example.name.appname.ProfileDetailsActivity}:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget .Button.setOnClickListener(android.view.View $ OnClickListener)'在空对象引用上

Java:

public class ProfileDetailsActivity extends AppCompatActivity {
Button selectpfbirthdate;
    DatePickerDialog datePickerDialog;
    int year;
    int month;
    int dayOfMonth;
    Calendar calendar;

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

selectpfbirthdate = findViewById(R.id.btn_pf_dob);

        selectpfbirthdate.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                calendar = Calendar.getInstance();
                year = calendar.get(Calendar.YEAR);
                month = calendar.get(Calendar.MONTH);
                dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
                datePickerDialog = new DatePickerDialog(ProfileDetailsActivity.this,
                        new DatePickerDialog.OnDateSetListener() {
                            @Override
                            public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                                selectpfbirthdate.setText(day + "/" + (month + 1) + "/" + year);
                            }
                        }, year, month, dayOfMonth);
                //datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis());
                datePickerDialog.show();
            }
        });


    }

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@color/colorPrimaryDark"
    style="@style/traNav"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ProfileDetailsActivity">
<ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
<TableLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:stretchColumns="1"
                android:background="@color/colorPrimaryDark">
<TableRow
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="3dp"
                    android:layout_weight="1"
                    android:orientation="vertical">

                    <android.support.v7.widget.AppCompatTextView
                        android:layout_weight="1"
                        android:gravity="start"
                        android:padding="10dip"
                        android:text="@string/date_of_birth"
                        android:textColor="@android:color/background_light"
                        android:textSize="18sp"
                        />

                    <Button
                        style="@style/et_background"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:textAlignment="center"
                        android:gravity="start"
                        android:padding="10dip"
                        android:textColor="@android:color/background_dark"
                        android:background="#d3d4d5"
                        android:textSize="18sp"
                        android:hint="@string/pick_date"
                        android:textAllCaps="false"
                        android:id="@+id/selectpfbirthdate"/>

                </TableRow>
</TableLayout>
</LinearLayout>
<Scrollview>
</LinearLayout>

编辑: 不好,我使用了错误的ID。谢谢。

0 个答案:

没有答案