Цифровая программная клавиша появляется и мгновенно превращается в обычную клавиатуру
HI все, что я искал небольшую помощь с моей цифровой софтпадом и EditText. У меня есть действие, в основном с таблицей из 2 столбцов, которая имеет 1 столбец, редактируемый через EditText Я хочу, чтобы при нажатии на EditText отображалась цифровая клавиатура телефона. Он делает это, но почти мгновенно переключается на обычную клавиатуру. Иногда это переключается пару раз?? Представление находится внутри пользовательского адаптера, который изменен код из этого блога
Существует файл XML для действия, но он на самом деле не используется, они настроены программно. XML-файл содержит linearLayout, ListView и пустое текстовое представление и текст редактирования.
public class MethodEditor extends ListActivity {
private ArrayList<String[]> thismethod = new ArrayList<String[]>();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Bundle extras = getIntent().getExtras().getBundle("scanparam");
ArrayList<String> param = new ArrayList<String>();//{
param = extras.getStringArrayList("PARAM");
ArrayList<String> value = new ArrayList<String>();
value = extras.getStringArrayList("VALUE");
for (int i = 0; i < length; i++){
thismethod.add(new String[]{param.get(i), value.get(i)});
}
setContentView(R.layout.method_editor);
MethodEditorAdapter editorAdapter = new MethodEditorAdapter(this, thismethod );
setListAdapter( editorAdapter );
}
Теперь заказной адаптер
class MethodAdapterView extends LinearLayout {
public MethodAdapterView(Context context,
String[] strings ) {
super( context );
// this.setOrientation(HORIZONTAL);
LinearLayout.LayoutParams Params =
new LinearLayout.LayoutParams(100, LayoutParams.WRAP_CONTENT);
Params.setMargins(1, 1, 1, 1);
TextView paramname = new TextView( context );
paramname.setInputType(InputType.TYPE_CLASS_PHONE);
paramname.setText(strings[0]);
paramname.setTextSize(20f);
paramname.setTextColor(Color.WHITE);
addView( paramname, Params);
LinearLayout.LayoutParams Value =
new LinearLayout.LayoutParams(150, LayoutParams.WRAP_CONTENT);
Value.setMargins(1, 1, 1, 1);
EditText paramvalue = new EditText(context);
paramvalue.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL );
paramvalue.setRawInputType(InputType.TYPE_CLASS_PHONE);
paramvalue.setText(strings[1]);
paramvalue.setTextSize(20f );
paramvalue.setTextColor(Color.BLACK);
addView( paramvalue, Value);
}
}
public class MethodEditorAdapter extends BaseAdapter {
private Context context;
private ArrayList<String[]> scanparam;
public MethodEditorAdapter(Context context, ArrayList<String[]> scanparam ) {
this.context = context;
this.scanparam = scanparam;
}
public View getView(int position, View convertView, ViewGroup parent) {
return new MethodAdapterView(this.context, scanparam.get(position) );
}
}
Это должно быть просто, но я предполагаю, что что-то идет не так в пользовательском адаптере. Любые идеи кто-нибудь?
Я думаю, что это больше связано с настройками Querty клавиатуры моего телефона по умолчанию, что портит его. Если я вручную изменю настройки телефона на клавиатуру телефона, то это сработает. Могу ли я сделать это автоматически?