2012-09-17 228 views
3

我有一個gridview包含活動和下面的edittexts有一個自定義鍵盤,你可以在下面的代碼中看到我添加了按鈕來輸入數字。但問題是,當我點擊gridview中的edittext時,軟鍵盤彈出。隱藏軟鍵盤問題

我試着把android:windowSoftInputMode="stateHidden"放在清單文件中,但它甚至沒有隱藏我的情況下的軟鍵盤。我提到很多源碼,包括stackoverflow,甚至沒有留下任何一篇文章。我認爲我的main.xml文件存在問題。我們不能把它隱藏在gridview的child裏面(我知道這看起來很愚蠢,但這是我在嘗試了很多事情之後所得到的最終懷疑)。有人可以建議我去哪裏錯了嗎?如果你用你的答案測試下面的代碼,然後建議我它是否有效,將不勝感激。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

     <FrameLayout 
       android:id="@+id/fLayout1" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="2" 
       android:background="@drawable/background3"> 
     <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/gridview" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:columnWidth="18dp" 
       android:numColumns="6" 
       android:verticalSpacing="0dp" 
       android:horizontalSpacing="1dp" 
       android:stretchMode="columnWidth" 
       android:gravity="center" 
       android:listSelector="@null"/> 
     </FrameLayout> 

     <FrameLayout 
       android:id="@+id/fLayout2" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="4" 
       android:background="@drawable/background2"> 

     <TableLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/keypad" 
       android:orientation="vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:stretchColumns="*"> 

     <TableRow> 
     <Button android:id="@+id/keypad_1" 
     android:text="1" 
     android:background="@drawable/custombutton"> 
     </Button> 
     <Button android:id="@+id/keypad_2" 
     android:text="2" 
     android:background="@drawable/custombutton"> 
     </Button> 
     <Button android:id="@+id/keypad_3" 
     android:text="3" 
     android:background="@drawable/custombutton"> 
     </Button> 

     <Button android:id="@+id/keypad_4" 
     android:text="4" 
     android:background="@drawable/custombutton"> 
     </Button> 

     <Button android:id="@+id/keypad_5" 
     android:text="5" 
     android:background="@drawable/custombutton"> 
     </Button> 

     </TableRow> 
     <TableRow> 



     <Button android:id="@+id/keypad_6" 
     android:text="6" 
     android:background="@drawable/custombutton"> 
     </Button> 

     <Button android:id="@+id/keypad_7" 
     android:text="7" 
     android:background="@drawable/custombutton"> 
     </Button> 
     <Button android:id="@+id/keypad_8" 
     android:text="8" 
     android:background="@drawable/custombutton"> 
     </Button> 
     <Button android:id="@+id/keypad_9" 
     android:text="9" 
     android:background="@drawable/custombutton"> 
     </Button> 

     <Button android:id="@+id/keypad_10" 
     android:text="C" 
     android:background="@drawable/custombutton"> 
     </Button> 

     </TableRow> 
     <TableRow> 
     <Button android:id="@+id/submit" 
     android:text="submit" 
     android:layout_span="5" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/custombutton"> 

     </Button> 
     </TableRow> 
     </TableLayout> 

     </FrameLayout> 
</LinearLayout> 
+0

@Shrikant你可以檢查我的問題,如果給定的解決方案甚至不提供我的問題提示,我怎麼可以接受答案。我不 – Kanth

+0

如果你沒有得到你的問題的正確答案,然後檢查你是否很好地解釋了問題。我相信你可能已經閱讀過,但我仍然建議你在發佈本網站上的問題之前總是閱讀常見問題解答。 – Shrikant

+0

這似乎是對我的一個論據。如果你現在可以問我,我會很高興,如果你對我的問題有任何疑問。這個問題也不例外。當然,我總是表示感謝,因爲至少他們正試圖幫助解決我的問題。 – Kanth

回答

1

您是否嘗試過在onCreate()方法中添加此行?

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

OR

嘗試你在清單之前做了什麼,但不是stateHiddenstateAlwaysHidden

OR

你試圖將一個onTouch聽衆對EditText?如果我沒有弄錯它會「消耗」觸摸事件,並且鍵盤不應該出現。 喜歡的東西:

editText_input_field.setOnTouchListener(otl); 

private OnTouchListener otl = new OnTouchListener() { 
    public boolean onTouch (View v, MotionEvent event) { 
      return true; // the listener has consumed the event 
    } 
}; 

here

採取讓我知道,如果有什麼作品:)。我會考慮一些其他的解決方案,如果不是...

+0

感謝您的回覆。即使我也嘗試過這些。沒有工作。最後editText.setFocusable(false);工作,但它沒有突出顯示edittext點擊和光標也不可見。所以,我也不能使用它。即使我嘗試了requestFocus,但沒有奏效。 – Kanth

+0

我想這也是以前:editText.setOnTouchListener(新View.OnTouchListener(){ \t 公共布爾onTouch(視圖V,MotionEvent事件){ editText.setFocusable(真); editText.setFocusableInTouchMode(真); return false; } });但沒有工作。你的太了,但沒有工作。現在它完全禁用了edittexts。 – Kanth

+0

非常感謝你的時間。 +1。請讓我知道,如果你找到任何其他解決方案。 – Kanth