2

こんにちは、数値ソフトキーパッドと EditText について少し助けを求めていました。基本的に、EditText を介して編集可能な 1 列を持つ 2 列のテーブルを使用するアクティビティがあります。EditText がクリックされたときに数字の電話キーパッドが表示されるようにします。これは行いますが、ほぼ瞬時に通常のキーパッドに切り替わります。時々それは数回切り替わりますか?? ビューは、このブログのコードを変更したカスタム アダプター内にあります。

アクティビティ用の xml ファイルがありますが、実際には使用されず、プログラムでセットアップされます。xml ファイルには、linearLayout、ListView、および空白の textview と edittext が含まれています。

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) );
}

}

これは簡単なことですが、カスタム アダプターで何か問題が発生していると思います。アイデアはありますか?

それを台無しにするのは、私の電話のクエリキーボードのデフォルト設定にもっと関係していると思います。電話の設定を電話のキーパッドに手動で変更すると、機能します。これを自動的に行うことはできますか?

4

0 に答える 0