私はAddActivty
とViewActivity
という2つのアクティビティを持っています。これらの2つのアクティビティは、ファイルlayout_form.xml
で定義されたレイアウトビューを共有します。APIが下位の21のボタンで描画可能なアイコン
まず、私のアプリはの最小sdkバージョン16を動作させる必要があります。だからbuild.gradle
ファイルで私はそれを指定しました。
これらは、layout_form.xml
の一部です。残りのコードは重要ではありません。 Iライン setContentView(R.layout.layout_form)によってコンテンツビューとしてこのレイアウトを設定し、両方の活動において
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="orizontal">
<Button
android:id="@+id/leftToolbarButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_done"
android:drawableStart="@drawable/ic_done"
android:text="ADD"
android:textColor="@android:color/white" />
<Button
android:id="@+id/rightToolbarButton"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableEnd="@drawable/ic_cancel"
android:drawableRight="@drawable/ic_cancel"
android:text="CANCEL"
android:textColor="@android:color/white" />
</LinearLayout>
</Toolbar>
。
これは、AddActivity
が画面に表示されているときの私のアプリツールバーの外観です。
とこれまでのところ、とても良いです。
開始時に問題が発生するViewActivity
。 これはそのonCreate()
メソッドのコードです。
Button backButton=(Button)findViewById(R.id.leftToolbarButton);
backButton.setText("BACK");
//PROBLEM HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
backButton.setCompoundDrawablesWithIntrinsicBounds(
R.drawable.ic_back, 0, 0, 0);
Button editButton=(Button)findViewById(R.id.rightToolbarButton);
editButton.setText("EDIT");
//AND PROBLEM HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
editButton.setCompoundDrawablesWithIntrinsicBounds(
0, 0, R.drawable.ic_edit, 0);
ここでアンドロイド> = 21でアプリを実行すると、すべてOKです。これがツールバーの仕組みです。
は代わりに、アンドロイド16には、このように見えます。
あなたが見ることができるように、私のアプリは、(私はAndroidの17以上に何が起こるか分かりませんが、より低い21) アイコンが変更されていないAndroidの16上で実行されている場合。それらはxmlレイアウトファイルで設定されたものと同じように見えます。
別のこと。私は、それを今のアイコンの変更をクリックした場合、私はeditButton
editButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
backButton.setCompoundDrawablesWithIntrinsicBounds(
R.drawable.ic_back, 0, 0, 0);
}
});
にこのリスナーを追加します。
、なぜViewActivity
のonCreate()
方法でアイコンが変化しないのですか?