0

我完全用 java 代码编写了布局,因为它更方便。(我有很多textViews并且使用for语句更方便)。

但是,我的 TextViews 需要星期几并且在纵向模式下,我想将星期几缩短为简短的形式。例如,我希望“星期日”在纵向模式下显示“太阳”,而在横向模式下显示“星期日”。

我了解如何在 XML 文件中执行此操作,但如何在代码中执行此操作?

即示例代码:

LinearLayout parent = new LinearLayout(getApplicationContext());
parent.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
TextView example = new TextView;
example.setLayoutParams(mparams);
example.setText("Sunday"); //<--make this "Sun" when in portrait but "Sunday" in landscape
parent.addView(example);
4

2 回答 2

1

您可以在 Activity 类中覆盖onConfigurationChanged()方法,并且可以设置文本,当方向改变时,此方法将调用...希望对您有所帮助..:)

       @Override
       public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            // Here you can set text **Sun**
        } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            //Here you can set text **Sunday**
        }

    }
于 2012-09-15T21:18:49.277 回答
1

如果您的应用程序在移动到横向时重新启动,那么您可以定义需要在横向模式下扩展的字符串values-land

使用硬编码字符串从来都不是一个好主意。即使您以编程方式创建布局,也可以使用 strings.xml 来存储字符串

于 2012-09-15T21:31:05.080 回答