2015-03-18 54 views
0
我使用Butterknife並試圖改變的EditText的輸入

的提交的Android上的EditText變化ENTER鍵提交Butterknife

<EditText 
android:id="@+id/id_message" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/gray_line_background" 
android:ems="10" 
android:gravity="top" 
android:inputType="textMultiLine" 
android:minLines="8" /> 

,並在我的片段

@InjectView(R.id.id_message) 
@NotEmpty(messageResId = R.string.err_message_empty) 
EditText message; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_myfragment, container, false); 
     ButterKnife.inject(this, v); 

     validator = new Validator(this); 
     validator.setValidationListener(this); 

     message.setImeActionLabel("Submit", KeyEvent.KEYCODE_ENTER); 

     message.setOnEditorActionListener(new EditText.OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
       if (actionId == EditorInfo.IME_ACTION_DONE) { 
        onNextClick(message); 
        return true; 
       } 
       return false; 
      } 
     }); 


    return v; 
} 

不工作沒有的按鈕不改變文字的東西,聽衆不會執行動作

謝謝

+0

你可以嘗試將您的代碼移動到片段的onViewCreated方法。我認爲在你注資時可能沒有適當誇大意見。 – mmark 2015-03-18 22:25:24

+0

@urudroid謝謝,我試過了,不是那樣的。現在我將發佈答案。 – agusgambina 2015-03-24 22:15:03

回答

1

問題不ButterKnife,問題是在XML

android:inputType="textMultiLine" 

隨着該行沒有改變輸入,所以我以編程方式管理和工作

@InjectView(R.id.id_message) 
@NotEmpty(messageResId = R.string.err_message_empty) 
EditText message; 

    @Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_preclass3, container, false); 
    ButterKnife.inject(this, v); 

    message.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 
    message.setImeActionLabel("Enviar", EditorInfo.IME_ACTION_DONE); 
    message.setImeOptions(EditorInfo.IME_ACTION_DONE); 
    message.setLines(8); 

    message.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      boolean handled = false; 
      if (actionId == EditorInfo.IME_ACTION_DONE) { 
       onNextClick(message); 
       handled = true; 
      } 
      return handled; 
     } 
    }); 


    return v; 
} 

謝謝

相關問題