2015-12-05 13 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应该很容易保持EditText的值重新启动应用程序,继续显示以前输入的相同值?