如何更改edittext字体大小

时间:2014-12-07 20:08:34

标签: android android-edittext font-size

我写了一个代码来制作一个下拉列表,里面有一些项目" 8" ," 12" ," 13" ......等  像这样的xml:

<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/btn_dropdown"
android:spinnerMode="dropdown" />

现在我在同一布局中有一个具有此标记的edittext:

  <EditText
    android:id="@+id/etFName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >
  <requestFocus />
  </EditText>

我想要的是当我选择8时,例如edittext字体大小为8,当我选择12时,edittext字体大小将为12,依此类推....

这是我的Graduation.java代码

    private Spinner spinner;
private static final String[]paths = {"item 1", "item 2", "item 3"};
 EditText etFName;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.graduation);
    /*spinner = (Spinner)findViewById(R.id.spinner);
    ArrayAdapter<String>adapter = new ArrayAdapter<String>  (Graduation.this,android.R.layout.simple_spinner_item,paths);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener((OnItemSelectedListener) this);*/
    Spinner dropdown = (Spinner)findViewById(R.id.spinner);
    String[] items = new String[]{"8", "12", "16", "18", "20", "24", "28"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
    dropdown.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {

            switch (position) {
                case 0:
                    // Whatever you want to happen when the first item gets selected
                    break;
                case 1:
                    // Whatever you want to happen when the second item gets selected
                    break;
                case 2:
                    // Whatever you want to happen when the thrid item gets selected
                    break;

            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
        }
    });

我该如何填写评论行?

2 个答案:

答案 0 :(得分:0)

etFName.setTextSize(TypedValue.COMPLEX_UNIT_SP,Integer.parseInt(items[position]));

答案 1 :(得分:0)

我相信你应该试试这个(我没有):

int fontSizeInt;
try
{
    fontSizeInt = Integer.parseInt(items[position]);
}
catch (NumberFormatException e)
{
    fontSizeInt = 12; // Default size.
}
etFName.setTextSize(TypedValue.COMPLEX_UNIT_SP, (float) fontSizeInt);

注意int被投放到float。请记住,你不想让NumberFormatException让你措手不及,无论你觉得多么安全。