2015-12-05 3 views
1

Я хочу выбрать время продолжительности на экране.Android: выберите время на экране

Я сделал, чтобы остаться на время, установленное с помощью этого кода:

Но я хочу, что время может быть изменено с помощью кнопки

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
 

 
mEdit = (EditText) findViewById(R.id.editText); 
 

 
final long MINUTES = 1000*60*2; 
 
     final Runnable r = new Runnable() { 
 
      public void run() { 
 
       getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
 
      } 
 
     }; 
 

 
handler.postDelayed(r, MINUTES);

<EditText 
 
     android:layout_width="match_parent" 
 
     android:layout_height="wrap_content" 
 
     android:inputType="time" 
 
     android:ems="10" 
 
     android:id="@+id/editText" 
 
     android:text="Time" />

ответ

0

Вы можете получить значение из EditText и сохранить его как SharedPreference. Затем получите значение и используйте его как продолжительность.

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
mEdit = (EditText) findViewById(R.id.editText); 
String duration = mEdit.getText().toString(); 

SharedPreferences pref = this.getSharedPreferences("Test",0); 
Editor editor = pref.edit(); 
editor.putString("displayOnDuration", duration); 
editor.commit(); 

И использовать этот код, чтобы получить его:

SharedPreferences prfs = getSharedPreferences("Test", Context.MODE_PRIVATE); 
String duration = prfs.getString("displayOnDuration", "0"); 

final long MINUTES = Long.parseLong(duration); 
final Runnable r = new Runnable() { 
    public void run() { 
     getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    } 
}; 
handler.postDelayed(r, MINUTES); 
0

Спасибо большое, было очень полезно, я поставил код, который работал для меня:

<EditText 
    android:layout_width="50dp" 
    android:layout_height="wrap_content" 
    android:inputType="time" 
    android:ems="10" 
    android:id="@+id/editText" 
    android:imeOptions="actionSend" 
    android:text="10" /> 

MainActivity

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

    mEdit = (EditText) findViewById(R.id.editText); 
    String duration = mEdit.getText().toString(); 

    Handler handler = new Handler(); 

    SharedPreferences pref = this.getSharedPreferences("Test",0); 
    SharedPreferences.Editor editor = pref.edit(); 
    editor.putString("displayOnDuration", duration); 
    editor.commit(); 
    SharedPreferences prfs = getSharedPreferences("Test", Context.MODE_PRIVATE); 
    duration = prfs.getString("displayOnDuration", "3"); 

    final long MINUTES = 1000*60*Long.parseLong(duration); 
    final Runnable r = new Runnable() { 
     public void run() { 
      getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
     } 
    }; 
    handler.postDelayed(r, MINUTES); 

У меня есть другой вопрос, это w ould легко сохранить значение EditText для перезапуска приложения, продолжать показывать прежнее значение ранее введенное?

Смежные вопросы