我要实现
如果我单击Button1,则主ButtonBackground图片= Button1.Background图片。
如果我单击Button2,主按钮背景图像= Button2.Background图像。
我要为我的应用程序制作大约80个imageButton和字符。如果我学习一种方法,我的工作就必须更轻松。
My.cs
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.layout1);
Button btn1 = (Button)FindViewById(Resource.Id.btn1);
Button btn2 = (Button)FindViewById(Resource.Id.btn2);
Button btnMain = (Button)FindViewById(Resource.Id.btnMain);
btn1.Click += delegate {
btnMain.SetBackgroundResource(/*I cant fill in method*/);
};
btn2.Click += delegate {
btnMain.SetBackgroundResource(/*I cant fill in method*/);
};
}
layout1.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<Button
android:text="Button 1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn1"
android:background="@drawable/btn_yellow" />
<Button
android:text="Button 2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn2"
android:background="@drawable/btn_green" />
<Button
android:text="Main Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnMain" />
</LinearLayout>
您不需要多个lambda,并且可以使用setBackgroundDrawable / getBackgroundDrawable而不是SetBackgroundResource,它在Xamarin中被备份到属性Background:
Button btnMain;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.layout1);
Button btn1 = (Button)FindViewById(Resource.Id.btn1);
Button btn2 = (Button)FindViewById(Resource.Id.btn2);
btnMain = (Button)FindViewById(Resource.Id.btnMain);
btn1.Click += ChangeBackground;
btn2.Click += ChangeBackground;
}
private void ChangeBackground(object sender, EventArgs e)
{
var btn = sender as Button;
btnMain.Background = btn.Background;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句