Я - новый разработчик, и я хочу добавить time picker
в мой код. Я следовал тому же учебнику, но когда я использую эмулятор, он не работает. Даже genymotion
говорит мне, что в выполнении моего приложения есть проблема (и в моем коде нет ошибки) ошибка началась, когда я положил showTimePickerDialog()
в onCreate()
. Это мой код:Time picker android
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
Button button_stpd;
static final int DIALOG_ID = 0 ;
int hour_x;
int minute_x ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showTimePickerDialog();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
FragmentManager fm = getFragmentManager();
fm.beginTransaction().replace(R.id.Acceuil, new Acceuil()).commit();
showTimePickerDialog();
}
public void showTimePickerDialog(){
button_stpd = (Button)findViewById(R.id.temps_btn);
button_stpd.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DIALOG_ID);
}
}
);
}
@Override
protected Dialog onCreateDialog (int id){
if (id == DIALOG_ID)
return new TimePickerDialog(MainActivity.this, kTimePickerListner,hour_x,minute_x,false);
return null;
}
protected TimePickerDialog.OnTimeSetListener kTimePickerListner =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
hour_x = hourOfDay;
minute_x = minute;
Toast.makeText(MainActivity.this,hour_x + ":"+minute_x, Toast.LENGTH_SHORT).show();
}
};
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
FragmentManager fragmentManager = getFragmentManager() ;
if (id == R.id.nav_Acceuil) {
fragmentManager.beginTransaction().replace(R.id.Acceuil, new Acceuil()).commit() ;
// Handle the camera action
} else if (id == R.id.nav_Messagerie) {
fragmentManager.beginTransaction().replace(R.id.Acceuil, new Messagerie()).commit() ;
} else if (id == R.id.nav_Notification){
fragmentManager.beginTransaction().replace(R.id.Acceuil, new Notification()).commit() ;
} else if (id == R.id.nav_Paramétres) {
fragmentManager.beginTransaction().replace(R.id.Acceuil, new Parametre()).commit() ;
}
else if (id == R.id.nav_Calories) {
fragmentManager.beginTransaction().replace(R.id.Acceuil, new Calcule()).commit() ;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
В чем именно проблема? –
1. Какова ошибка. Говорит ли logcat что-то. Если нет, что именно происходит? 2. Пожалуйста, открепите свой код :) 3. Почему у вас есть 2 раза этот showTimePickerDialog()? –
Вне темы: showDialog/onCreateDialog/onPrepareDialog устарел много лет. Так как Android 3 и фрагменты - в данном случае DialogFragment - вышли точно. –