2014-02-11 55 views
2

我有一個包含3個EditText字段(其中包括TextViews和幾個按鈕)的活動。我也有一個使用ArrayAdapter的帶有String列表的AutoCompleteTextView。Android中的EditText在使用屏幕鍵盤時打字時不顯示文字

每當我在模擬器中測試應用程序時,我可以鍵入鍵盤啓動但它不顯示文本(它仍然給出預測),並且一旦鍵盤關閉,文本只出現在EditText框中。當我在手機上測試時也會發生這種情況。但是,如果屏幕鍵盤沒有打開並且您只是正常輸入,則它會在您在模擬器上鍵入時顯示。

我不知道爲什麼!

這裏是我的活動XML(其中的EditText的是前3個街區)

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/l" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_x="3dp" 
    android:layout_y="5dp" 
    android:background="@drawable/gymbg" > 


    <AutoCompleteTextView android:id="@+id/inputExercise" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:completionThreshold="1" 
     android:inputType="text" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/timeSet" 
     android:layout_margin="10dp" 
     android:layout_marginTop="50dp" 
     android:width="200dp" /> 

    <EditText 
     android:id="@+id/inputWeight" 
     android:inputType="number" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/inputExercise" 
     android:layout_margin="10dp" 
     android:layout_marginTop="50dp" 
     android:width="200dp" > 
    </EditText> 

    <EditText 
     android:id="@+id/inputReps" 
     android:inputType="number" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/inputWeight" 
     android:layout_margin="10dp" 
     android:layout_marginTop="50dp" 
     android:width="200dp" > 
    </EditText> 

    <TextView 
     android:id="@+id/timeMain" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:text="@string/timeMain" 
     android:textSize="32sp" 
     android:textColor="#0F293B"/> 

    <TextView 
     android:id="@+id/timeSet" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/timeMain" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="24dp" 
     android:text="@string/timeSet" 
     android:layout_marginBottom="50dp" 
     android:textColor="#0F293B"/> 

    <TextView 
     android:id="@+id/labExercise" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/addbutton" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/timeSet" 
     android:layout_centerVertical="true" 
     android:layout_margin="10dp" 
     android:layout_marginLeft="15dp" 
     android:text="@string/labExercise" 
     android:layout_toLeftOf="@+id/inputExercise" 
     android:textColor="#ffffff"/> 

    <Button 
     android:id="@+id/addbutton" 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_margin="10dp" 
     android:text="@string/add" /> 


    <Button 
    android:id="@+id/startStop" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/addbutton" 
    android:layout_alignParentLeft="true" 
    android:layout_margin="10dp" 
    android:text="@string/startStop" /> 

    <TextView 
     android:id="@+id/labWeight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/inputExercise" 
     android:layout_margin="10dp" 
     android:text="@string/labWeight" 
     android:textColor="#ffffff"/> 

    <TextView 
     android:id="@+id/labReps" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignTop="@+id/inputReps" 
     android:layout_margin="10dp" 
     android:text="@string/labReps" 
     android:textColor="#ffffff"/> 

    <TextView 
     android:id="@+id/seePrevious" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/inputExercise" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="22dp" 
     android:text="@string/tapToViewPrevious" 
     android:textColor="#505050"/> 

</RelativeLayout> 

,這裏是我在活動中使用的代碼:(我已經剝離出來unneccesary代碼)

public class MyWorkoutDiary1Activity extends Activity implements OnClickListener, TextWatcher 
{ 

    TextView seePrevious; 
    DatabaseHandler db; 

    AutoCompleteTextView myAutoComplete; 

    ArrayList<String> exerciseType = new ArrayList<String>(); 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


     exercise = new EditText(this); 
     exercise = (EditText)findViewById(R.id.inputExercise); 

     db = new DatabaseHandler(this); 
     exerciseType = db.getUniqueExercises(); 

     myAutoComplete = (AutoCompleteTextView)findViewById(R.id.inputExercise); 

     myAutoComplete.addTextChangedListener(this); 
     myAutoComplete.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, exerciseType)); 


     weight = new EditText(this); 
     weight = (EditText)findViewById(R.id.inputWeight); 


     reps = new EditText(this); 
     reps = (EditText)findViewById(R.id.inputReps); 

    } 

} 

感謝您的閱讀

回答

2

好的,所以我找出了問題所在!

我沒有職位,因爲我認爲這是「無關緊要」包含一個線程

public static Runnable updateTimerMethod = new Runnable() 
{ 

    public void run() 
    { 
     sessionTimer.setText(TimerHandler.theTime); 

     myHandler.postDelayed(this, 0); 

    } 
}; 

我意識到線程基本上佔用了所有的活動(我真的不知道該代碼如何正確解釋)通過postDelayed爲0.一旦我改變這個說... 100,然後EditText工作。

謝謝@NKN誰幫助過我。

這可能是特定於我的,但希望這可以幫助其他人。

4

事實上,您的文本正在打字,但這是一個小問題,使您的文本顏色與背景相同,因此您不會看到它。

1)簡單地更改EditTexttextColor,無論是在佈局定義它:

android:textColor="..." 

或動態:這可以通過執行2個東西很容易地固定

EditText et = (EditText) findViewById(R.id.your_edittext); 
et.setTextColor(Color.RED); 

2)更改清單中的擴展主題:

<application android:theme="@style/Theme.Light.NoTitleBar.Workaround" ... > 

3)res/values/themes.xml其中創建新的主題,使用固定樣式:

<style name="Theme.Light.NoTitleBar.Workaround" parent="@android:style/Theme.Light.NoTitleBar"> 
    <item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewLight</item> 
    <item name="android:dropDownItemStyle">@style/Widget.DropDownItemLight</item> 
</style> 

4)現在,這些風格,位於res/values/styles.xml應該解決的顏色:

<style name="AutoCompleteTextViewLight" parent="@android:style/Widget.AutoCompleteTextView"> 
    <item name="android:textColor">@android:color/primary_text_light</item> 
</style> 
<style name="Widget.DropDownItemLight" parent="@android:style/Widget.DropDownItem"> 
    <item name="android:textColor">@android:color/primary_text_light</item> 
</style> 

我知道這是一個爛攤子,但試試吧如果它可以工作,請嘗試找到適合您的佈局的那些屬性的組合。

+0

感謝您的建議!我嘗試了這兩種,但沒有奏效。你看,問題不在於我根本看不到文字,而只是在鍵盤關閉後才顯示。我需要它在您實時輸入時顯示 – Smittey

+0

對不起,有一步要走!我更新了我的帖子,看看它,希望這次有所幫助。 – nKn

+0

好的建議!我在這裏找到類似的問題[鏈接](https://groups.google.com/forum/#!topic/android-developers/3kfWpxvaP4U),並導致我的建議路線。然而,嘗試後,顏色仍然是白色的(我收集是問題),直到鍵盤關閉。 – Smittey

相關問題