0

レイアウトはもっと便利だったので、完全にJavaコードで書きました。(私はたくさん持っていて、ステートメントtextViewsを使用forする方が便利でした)。

ただし、私のTextViewには曜日が必要であり、ポートレートモードでは、曜日を短い形式にカットしたいと思います。たとえば、「Sunday」にはポートレートモードの場合は「Sun」を表示し、ランドスケープモードの場合は「Sunday」を表示したいとします。

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 に答える