Wie kann man zur Laufzeit ein Eingabefeld erstellen, bei
welchem der Hintergrund farblich vorgegeben wird und die Breite eingestellt
wird.
Lösung:
Über für den Hintergrund erstellt man ein Drawable Style.
Dieses drawable weist man dann mit EditView.setBackground(drawablename)
zu.
Für die Breite kann man dann mit EditView.setWidth(123) die Standardbreite
einstellen
Java code, runtime
Kompletter Code zum Erstellen eines Eingabefeldes EditView
zur Laufzeit
public void set_Input(View view) {
//------------< set_Input() >-----------
TableRow row =(TableRow) view;
row_Input=row;
String sRow_Key
=view.getTag().toString();
sDateShort_Input= sRow_Key.substring(4);
//< get_Edit_Field >
EditText tbxDate_Input=row.findViewWithTag("edit_" + sDateShort_Input);
if(tbxDate_Input ==null)
{
//-< add_new_Edit >-
tbxDate_Input=new EditText(this);
tbxDate_Input.setTextColor(Color.RED);
Drawable edStyle=getDrawable(R.drawable.input_date_style);
tbxDate_Input.setBackground(edStyle);
tbxDate_Input.setWidth(180);
row.addView(tbxDate_Input);
//-</ add_new_Edit >-
}
tbxDate_Input.requestFocus();
//</ get_Edit_Field >
//------------</ set_Input()
>-----------
}
|
Drawable
Im Drawable File wird ein Darstellungs-Style ausgelagert.
Man muss nur die Datei in den Pfad res/drawable stellen, wodurch
dieser dann mit
getDrawable(R.drawable.filename)
gefunden werden kann
Res/drawable/
input_date_style.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#EEFFFF00"/>
<stroke
android:color="#a0a32f"
android:width="1dp"
/>
<corners android:radius="1dp"/>
</shape>
</item>
</selector>
|