2014-09-08 2 views
0

У меня есть 3 edittext's в userdialog, устанавливая их динамически. 2 из них вводят текст правильно, но 1 не на некоторых устройствах (android 2.3.4). Уже пробовал решение от EditText freezes/doesn't show text whilst typing.Android EditText не отображает текст

Вот мой код:

AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this); 
    alertDialog.setTitle("Имя устройства"); 
    LinearLayout layout = new LinearLayout(context); 


    //alertDialog.setMessage("Задайте имя устройства"); 
    final EditText inputName = new EditText(MainActivity.this); 
    inputName.setInputType(InputType.TYPE_CLASS_TEXT); 
    inputName.setOnEditorActionListener(doneListener); 

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
          LinearLayout.LayoutParams.MATCH_PARENT, 
          LinearLayout.LayoutParams.MATCH_PARENT); 
    layout.setOrientation(LinearLayout.VERTICAL); 
    lp.setMargins(20, 20, 20, 20); 
    layout.setLayoutParams(lp); 


    final EditText inputInv = new EditText(MainActivity.this); 
    inputInv.setInputType(InputType.TYPE_CLASS_NUMBER); 
    inputInv.setTextColor(Color.BLACK); 
    inputInv.setOnEditorActionListener(doneListener); 


    final EditText inputDepartment = new EditText(MainActivity.this); 
    inputDepartment.setInputType(InputType.TYPE_CLASS_TEXT); 
    inputDepartment.setOnEditorActionListener(doneListener); 

    final TextView name = new TextView(MainActivity.this); name.setText("Имя устройства"); //name.setLayoutParams(lp); 
    final TextView inv = new TextView(MainActivity.this); inv.setText("Инвентарный номер"); //inv.setLayoutParams(lp); 
    final TextView dep = new TextView(MainActivity.this); dep.setText("Департамент");// dep.setLayoutParams(lp); 
    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) { 
     name.setTextColor(Color.WHITE); 
     inv.setTextColor(Color.WHITE); 
     dep.setTextColor(Color.WHITE); 
    } 

    layout.addView(name); 
    layout.addView(inputName); 
    layout.addView(inv); 
    layout.addView(inputInv); 
    layout.addView(dep); 
    layout.addView(inputDepartment); 

    alertDialog.setView(layout); 
    alertDialog.setPositiveButton("Продолжить", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog,int which) { 
        SharedPreferences.Editor editor = shPref.edit(); 
        String name = inputName.getText().toString() + "-" + inputInv.getText().toString() + "-" + inputDepartment.getText().toString(); 
        editor.putString("Name", name); 
        editor.commit(); 
        createShortCut(name); 
       } 
      }); 

    OnKeyListener okl = new OnKeyListener() { 

     @Override 
      public boolean onKey(DialogInterface arg0, int keyCode, 
        KeyEvent event) { 
       if (keyCode == KeyEvent.KEYCODE_BACK) { 
        finish(); 
        System.exit(0); 
       } 
       return true; 
      } 
     }; 

    alertDialog.setOnKeyListener(okl); 
    alertDialog.show(); 

doneListener просто закрыть экранную клавиатуру. Не работает и без него.

ответ

0

Похоже на ошибку с некоторыми мягкими клавишами в диалоговом окне. Решите эту проблему, отказавшись от диалога и используя «Активность».