Я создаю OptionActivity и меню для открытия имени настраиваемого диалога dlg_option . В диалоге dlg_option у меня есть TextView id txt_time для открытых календарей.
Это вариант активности
public class OptionActivity extends AppCompatActivity {
private TextView mDisplayDate;
private DatePickerDialog.OnDateSetListener mDateSetListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_m_option);
/************** This is open claenda code ************/
mDisplayDate = (TextView) findViewById(R.id.txt_time);
mDisplayDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(OptionActivity.this,
android.R.style.Theme_DeviceDefault_Dialog_MinWidth,
mDateSetListener,
year, month, day);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
}
});
mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
month = month + 1;
String date = dayOfMonth + "/" + month + "/" + year;
mDisplayDate.setText(date);
}
};
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.m_menu, menu);
return super.onCreateOptionsMenu(menu);
}
/************ This is menu ****************/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
switch (item.getItemId()){
case R.id.m_menu1:
builder.setView(inflater.inflate(R.layout.dlg_option, null));
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(OptionActivity.this, "menu ok",
Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(OptionActivity.this, "menu cancel",
Toast.LENGTH_SHORT).show();
dialogInterface.dismiss();
}
}).show();
return true;
}
return super.onOptionsItemSelected(item);
}
}
Это показывает ошибку java.lang.NullPointerException
когда я нажимаю m_menu1, он должен показывать dlg_option, а когда я нажимаю txt_time в dlg_option, он должен показывать календарь на выбранную дату. Как это исправить?