2013-09-10 2 views
3

Я поставил InputType из EditText в TYPE_NULL с:Я не могу изменить InputType из EditText после того как я установить его TYPE_NULL

editText.setInputType(InputType.TYPE_NULL); 

Я могу установить его на TYPE_NULL, это работает! Но если я хочу установить InputType на что-то еще, например TYPE_CLASS_TEXT, это не сработает!

Как я могу изменить его динамически в коде? Как и TYPE_NULL, затем снова TYPE_CLASS_TEXT и TYPE_NULL?

ответ

1
// Try this one 

**activity_main1.xml** 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/txtValue" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

    <Button 
     android:id="@+id/btnClick" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Enable Input" /> 

</LinearLayout> 

MainActivity1

public class MainActivity1 extends Activity { 

    private Button btnClick; 
    private TextView txtValue; 

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

     txtValue = (TextView)findViewById(R.id.txtValue); 
     btnClick = (Button)findViewById(R.id.btnClick); 

     txtValue.setInputType(InputType.TYPE_NULL); 
     btnClick.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       if(txtValue.getInputType()==InputType.TYPE_NULL){ 
        txtValue.setInputType(InputType.TYPE_CLASS_TEXT); 
        txtValue.invalidate(); 
        btnClick.setText("Disable Input"); 
       }else{ 
        txtValue.setInputType(InputType.TYPE_NULL); 
        txtValue.invalidate(); 
        btnClick.setText("Enable Input"); 
       } 
      } 
     }); 

    } 

} 
+0

спасибо, кажется, хорошо, я попробую его дома позже :) –

5

Для этого сначала нужно изменить INPUT TYPE, а затем добавить в него текст динамически следующим образом .....

editText.setInputType(InputType.TYPE_CLASS_TEXT); 
editText.setText("Hello"); 
+0

я попробовал это уже то же самое. но он не работает! я не могу изменить его от нуля до текста! клавиатура не появляется, когда я нажимаю на edittext, после того как я изменил inputtype от нуля до текста! –

+2

, то вместо InputType.TYPE_CLASS_TEXT используйте InputType.TYPE_TEXT_VARIATION_NORMAL –

+0

omg. InputType.TYPE_TEXT_VARIATION_NORMAL ВСЕГДА меняет EditText ... ВСЕГДА. прежде чем он будет на полном экране EditText и после InputType.TYPE_TEXT_VARIATION_NORMAL по умолчанию будет edittext. Зачем? –

 Смежные вопросы

  • Нет связанных вопросов^_^