ЧаВо

 V*D*V

Menu -> Settings -> Language&Keyboard -> Android Keyboard -> Input Languages

Перезапустить.

При вводе выбор языка производится проводкой курсора при нажатой левой кнопки мыши по пробелу.

 

Как на эмуляторе сменить язык ОС.

Приложения -> Custom Locale -> долгое нажатие на требуемом языке

 

Eclipse -> Window -> Show View -> Other -> Devices -> справа кнопка Screen Capture в виде фотоаппарата.

 

Eclipse -> Window -> Show View -> Other -> File Explorer -> справа кнопка "минус".

 

Командная строка -> [sdk -> platform-tools]

 

adb shell

rm -r /mnt/sdcard/[catalog]

 

Android Virtual Device Manager -> Android 4.0 -> Edit -> Hardware. Добавить Keyboard Support и установить значение в No.

 

 

c:\Program Files (x86)\Android\android-sdk\platform-tools>adb install "[path\[xxx.apk]"

 

Путь: data/data/[package-name]/shared_prefs/[PrefName].xml.

 

 

float sizeInDip = 10f;

int sizeInPx = (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, sizeInDip, getResources().getDisplayMetrics() );

 

LayoutParam.gravity - выравнивание данного элемента внутри того, где он содержится.

view.setGravity - способ выравнивания дочерних элементов внутри данного.

 

Для данной Activity добавить в AndroidManifest.xml параметр: android:windowSoftInputMode="stateAlwaysHidden"

 

 // показать клавиатуру

 final InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE );

 imm.toggleSoftInput( InputMethodManager.SHOW_FORCED, 0 );

 

Для колонки с EditText установить

setColumnStretchable( edit_text_column, true );

setColumnShrinkable( edit_text_column, true );

 

 

final TypedArray ta = context.getTheme().obtainStyledAttributes(

                         new int[]{android.R.attr.expandableListPreferredItemPaddingLeft} );

view.setPadding( ta.getDimensionPixelSize( 0, 0 ), 0, 0, 0 );

ta.recycle();

 

setRawInputType( Configuration.KEYBOARD_12KEY );

Попытка фильтрации с помощью setKeyListener( DigitsKeyListener.getInstance( "..." ) ) приводит к показу клавиатуры без символов +,-,*.

Фильтрация:

setFilters( new InputFilter[]{ new TextInputFilter( TextInputFilter.SIMPLE_FLOAT_MATEMATIC )} );

/**

* Фильтр для контроля вводимых в текстовое поле символов

* <code>

* .setFilters( new InputFilter[]{ new TextInputFilter( TextInputFilter.SIMPLE_FLOAT_MATEMATIC )} );

* </code>

* http://regexpal.com/

*/

final class TextInputFilter implements InputFilter {

 /** Символы: 0-9.+-*() */

 static final String SIMPLE_FLOAT_MATEMATIC = "[-+)(.*\\d]*";

 //

 private final Pattern mPattern;

 //

 TextInputFilter(final String regex)/* throws PatternSyntaxException*/ {

         mPattern = Pattern.compile( regex );

 }

 @Override

 public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

         final StringBuilder sb = new StringBuilder( dest ).append( source );

         if( ! mPattern.matcher( sb ).matches() ) {

                 return "";

         }

         return null;

 }

}

 

WebView поддерживает переходы по внутренним ссылкам, но при первом открытии ссылка игнорируется.

/**
* Показать справку
* @param context контекст
* @param anchor ссылка внутри html файла или null
*/
static final void showHelp(final Context context, final String anchor) {
 final WebView v = new WebView( context );
 new Handler().postDelayed( new Runnable() {
                 @Override
                 public void run() {
                         String url = "help_" + Locale.getDefault().getLanguage() + ".htm";
                         try{
                                 context.getAssets().open( url );
                         } catch( IOException e ) {
                                 url = "help_en.htm";
                         }
                         v.loadUrl( "file:///android_asset/" + url );
                         v.setWebViewClient( new WebViewClient() {
                                 boolean isNotRendered = true;
                                 public void onPageFinished(WebView view, String url) {
                                         if( isNotRendered ) {
                                                 v.loadUrl( url + (anchor == null ? "" : "#" + anchor) );
                                                 isNotRendered = false;
                                         }
                                 }
                         });
                 }
         }, 500L );
 new AlertDialog.Builder( context ).setTitle( R.string.TitleHelp ).setView( v ).setPositiveButton( android.R.string.ok, null ).show();
}