使用样式以编程方式创建视图

时间:2014-05-13 15:58:22

标签: android view coding-style scrollview programmatically-created

我的申请有问题。基本上它的作用是,当我点击一个按钮时,它会在scrollView上创建3个字段(2个editText和1个微调器)。事情很好,我唯一的问题,与风格有关,活动bgColor是白色的(作为应用程序的其余部分)但是,当我以编程方式创建元素时,这些元素没有我的其余部分的外观应用程序。 editTexts是白色的,带有白色字母(由于我的bgColor也是白色的,因此无法读取)与旋转器相同。我能做什么?这是一段代码,所以你可以看到我在这做什么。

public class AddIngredients extends Activity {
public int Count = 0;
public String[] spinnerArray = {"Gr", "kg", "Cups", "ml", "L", "oz"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.addingredients);
    final TableLayout lm = (TableLayout) findViewById(R.id.TableMain);

    TableLayout.LayoutParams params = new TableLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    Button addMore = (Button)findViewById(R.id.addmore);
    addMore.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            TableRow ll = new TableRow(getApplicationContext());
            //ll.setOrientation(LinearLayout.HORIZONTAL);


            EditText product = new EditText(getApplicationContext());
            product.setHint(" Ingredient "+Count +"    ");

            // Create Button
            EditText amount = new EditText(getApplicationContext());
                // Give button an ID
                amount.setId(Count);
                amount.setHint("Quantity");

            final Button btn2 = new Button(getApplicationContext());

                btn2.setId(Count);
                btn2.setText("Remove " + Count);

            Spinner spinner = new Spinner(getApplicationContext());
            ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, spinnerArray);
            spinner.setAdapter(spinnerArrayAdapter);

            ll.addView(product);
            ll.addView(amount);
            ll.addView(spinner);
            lm.addView(ll);
            Count = Count + 1;

我知道我的XML运行良好,因为如果我在xml上创建3个视图,它们看起来很棒。 PD:请提前获取任何帮助!问候。

3 个答案:

答案 0 :(得分:1)

你可以使用

amount.setTextColor(Color.BLACK);

将文字颜色设置为黑色或任何其他颜色
同样可以用于微调器

答案 1 :(得分:1)

这是我如何设置编辑文本行和其他与主题相关的android视图的颜色。

http://android-holo-colors.com/

我刚刚选择了我想要的颜色和视图,然后在我的res文件夹中解压缩它们,然后根据android教程设置主题。

我建议您首先备份您的资源文件夹,以防您不喜欢结果。

阁楼

答案 2 :(得分:0)

我的代码出错了。在创建字段时,我正在使用 (getApplicationContext());。我使用MyApplicationName.this修复了它。