A project that generates a partial class (view) for Activities/Fragments that will contain properties with the same name as their android:id
in the xml view file.
Add the following property to your csproj
inside an ItemGroup
<AdditionalFiles Include="Resources\layout\*.xml" OutputType="Analyzer" />
Then make your activity or fragment partial and add the [GenerateBindings("view_file.xml")]
attribute.
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
[AndroidBinding("activity_main.xml")]
public partial class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle? savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
}
}
[AndroidBinding("fragment_main.xml")]
public partial class MainFragment : Fragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.Inflate(Resource.Layout.fragment_main, container, false)!;
}
}
Install Visual Studio 2022 Preview and .NET 6.0
Clone the project and open the solution then you just build the whole solution or project.
Contributions are welcome and appreciated, before you create a pull request please open a GitHub Issue to discuss what needs changing and or fixing if the issue doesn't exist!
This library was created by reading some posts from Andrew Lock like this or this and by observing how the jab project was coded.
The posts are great plus there are a lot more to read and jab is a really great library, you should check them out!