package org.kidinov.just_weather.weather.view; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import org.kidinov.just_weather.R; import butterknife.BindView; import butterknife.ButterKnife; public class WeatherAddCityDialog extends DialogFragment { @BindView(R.id.city_name_edit_text) EditText cityNameEt; public static WeatherAddCityDialog newInstance() { return new WeatherAddCityDialog(); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.weather_add_city_dialog, null); ButterKnife.bind(this, view); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.add_city); builder.setNegativeButton(android.R.string.cancel, null); builder.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> ((WeatherActivity) getActivity()).addCityByName(cityNameEt.getText().toString())); builder.setView(view); Dialog dialog = builder.create(); dialog.setOnShowListener(x -> { InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(cityNameEt, InputMethodManager.SHOW_IMPLICIT); }); return dialog; } }