2011-12-19 41 views
2

设置我有一个Android应用程序,在它的一个组成部分的键盘工作正常,除了那 - 虽然用下面的代码打开 - 没有出现:Android不显示键盘虽然在代码

View.OnFocusChangeListener vof = new View.OnFocusChangeListener() { 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 
      getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
     } 
    } 
}; 

// ... 

final TextView input = (TextView) findViewById(R.id.answer); 
input.setOnFocusChangeListener(vof); 
input.requestFocus(); 

我在其他帮助页面上可以找到的所有东西都只有这个解决方案,当我尝试在我的Samsung Galaxy S2上使用它时,这种解决方案无效。

+0

你确定onFocusChange被调用吗? – njzk2 2011-12-19 17:49:24

+0

@ njzk2我确定它是 - android的sdk/adt for eclipse自动添加了这个方法,我不认为这是错误的。此外,此代码适用于此应用中的另一个textedit。 – hlt 2011-12-19 18:35:12

+0

我现在找到了解决方案...查看我的编辑 – hlt 2011-12-19 19:19:04

回答

0

我发现这个问题 - 在XML布局要求的焦点之前,我设置的侦听器,以便onFocusChange从来没有所谓:

<EditText 
    android:id="@+id/answer" 
    android:layout_width="wrap_content" 
    android:layout_height="175dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/question" 
    android:gravity="top" 
    android:inputType="textMultiLine"> 

    <requestFocus /> 
</EditText> 

当我删除了它的工作,因为我想它< requestFocus的/ >部分至。

+1

请注意,编辑原始问题的答案(即使您问了问题)是在StackOverflow上提出答案的正确方法。如果你找到自己问题的答案,你应该将其作为答案发布,以便其他人可以对其进行投票。如果您觉得答案可以解决您的问题,那么您可以通过选中答案下方左侧的绿色复选框来接受答案。 – casperOne 2011-12-20 13:08:05