こんにちは、数値ソフトキーパッドと 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) );
}
}
これは簡単なことですが、カスタム アダプターで何か問題が発生していると思います。アイデアはありますか?
それを台無しにするのは、私の電話のクエリキーボードのデフォルト設定にもっと関係していると思います。電話の設定を電話のキーパッドに手動で変更すると、機能します。これを自動的に行うことはできますか?