ボタンsetTextAppearance(コンテキストコンテキスト、int型の残油)は(残油をint型)ボタンsetTextAppearanceが廃止されました
とsetTextAppearanceを推奨されていません - 23
APIレベルでのみ使用でき、私が代わりに何を使うべきでしょうか?
ボタンsetTextAppearance(コンテキストコンテキスト、int型の残油)は(残油をint型)ボタンsetTextAppearanceが廃止されました
とsetTextAppearanceを推奨されていません - 23
APIレベルでのみ使用でき、私が代わりに何を使うべきでしょうか?
廃止されたということは、今後サポートが中止されることがありますが、期待どおりに機能していることを意味します。
if (Build.VERSION.SDK_INT < 23) {
yourButton.setTextAppearance(context, resid);
} else {
yourButton.setTextAppearance(resid);
}
:新しいsetTextAppearance(int resid)
だけあなたが長い時間のために安全になりたい場合は、次のコードを使用することができ、APIレベルで23
をリリースしましたので、古いAPIについて、何の代替は、ありませんこのコードでは、APIレベル23以降の携帯電話では新しいバージョンが優先されますが、APIレベル23で使用できない場合は古いバージョンが使用されます。
@Daniel Zolnaiと同じことを言うつもりです。しかし、あなたのコード内のすべての場所にチェックBuild.VERSION>SDK_INT < 23
をしないでください。これを1か所に入れておくと、将来これを削除したり、変更したりすることは容易になります。だからそれを行う方法?私はyourButton
のケースでこれを行います。
Button
か、単にそのようなアンドロイドが提供する他のビューを使用しないでください。私はこれを言う、なぜなら将来的に何かを微調整する必要があるから、あなた自身のMyButton
かそのようなものを持つ方がよいからです。したがって、MyButton
を拡張Button
に作成してください。
MyButton
の内部では、以下のコードを置く: public void setTextAppearance(Context context, int resId) {
if (Build.VERSION.SDK_INT < 23) {
super.setTextAppearance(context, resId);
} else {
super.setTextAppearance(resId);
}
}
あなたは常にBUILDバージョンのチェックを心配することなく、setTextAppearance
を使用することができますこの方法です。将来的にこのすべてのものを削除する予定がある場合は、refactor
を1か所に置かなければなりません。これは少しの作業ですが、長期的には、これは多くの助けとなるでしょう。maintananceの悪夢を減らします。
'TextView.setTextAppearance(int resId)'もシステムから呼び出されることはないので、 'super..'をダブルコールすることができますか? –
はい。 API <23のみが 'setTextAppearance(int resId)'を呼び出します。 'super'へのダブルコールはありません。 – Henry
あなたはAPI> = 23をコールする* 'STA(int)'と* only * API <23は 'STA(context、int)'を呼び出しますか? :)システムはいつこれらのメソッドを呼び出しますか? –
あなたはどのようなAPIを開発していますか –
あなたの問題は何ですか?新しいAndroidバージョンで古いメソッドを呼び出すと、新しいメソッドが内部的に呼び出されるので、同じ結果が得られます。 – Froyo