我一直在使用本教程here來創建時間選擇器。我可以選擇正確的時間,但是我無法獲得選擇顯示在我的TextView中的時間。 Java不是我的首選語言,所以這可能是我墮落的地方。將TextView設置爲TimePicker的時間 - Android
這裏是我的Java代碼:
import android.app.Activity;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.TimePicker;
import java.util.Calendar;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//code from: http://developer.android.com/guide/topics/ui/controls/pickers.html
public void showTimePicker(View v) {
DialogFragment newFragment = new TimePickerFragment();
newFragment.show(getFragmentManager(), "timePicker");
}
public static class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// Do something with the time chosen by the user - how!?
}
}
}
在我的XML我有選擇時間按鈕上點擊運行showTimePicker方法,像這樣:
android:onClick="showTimePicker"
我曾嘗試只需設置onTimeSet方法內的文本字段,但我得到一個nullpointerexception。然後我想我應該在onCreateDialog中初始化它,但是我不知道如何使用findViewById來查找實際的文本視圖。我相信這可能很簡單,但我已經搜索了上下沒有運氣。謝謝你的幫助!
爲什麼說解決方案1更好?我會說2更好,因爲你只需要搜索TextView一次;它更有效率。 –
@NathanWalters如果我們談論你的表現你是對的,sol 2更好。如果他(或其他用戶)想在活動外部創建「TimePickerFragment.class」,我已經選擇sol 1作爲更好的選擇。無論如何,我會更新我的sol 1以提高效率,並感謝您的評論:) – Rami
啊,是的,我沒有考慮過這種情況。在這種情況下,你可以把''''''''''''''''''''''移動到'''onCreate()'''中。然後你可以獲得更多模塊化代碼的好處*和*性能提升! –