Table of Contents
1. Configure the application manifest in the AssemblyInfo.cs file
2. Create a more flexible custom adapter
3. The main interface of the example in this chapter
Home php教程 php手册 [Android] Chapter 7 (1) Manifest, Adapter and Layout--Make your program more elegant

[Android] Chapter 7 (1) Manifest, Adapter and Layout--Make your program more elegant

Jul 06, 2016 pm 01:30 PM
android grace layout program adapter

Category: C#, Android, VS2015; Creation date: 2016-02-09 1. Configure the application manifest in the AssemblyInfo.cs file. As we said in the previous chapter, in addition to configuring the application manifest in the AndroidManifest.xml file , you can also configure the application manifest in the AssemblyInfo.cs file. Configure in AssemblyInfo.cs file

Category: C#, Android, VS2015;

Creation date: 2016-02-09

1. Configure the application manifest in the AssemblyInfo.cs file

front In the chapter, we said that in addition to configuring the application manifest in the AndroidManifest.xml file, you can also configure the application manifest in the AssemblyInfo.cs file.

Configuring the application manifest in the AssemblyInfo.cs file is a recommended practice when writing applications in C#.

The advantage of configuring the application manifest in the AssemblyInfo.cs file is: due to convenient smart prompts when typing C# code, adding and modifying the manifest configuration is much easier than configuring it directly in the AndroidManifest.xml file.

In fact, when writing Android applications in C#, you can completely ignore the AndroidManifest.xml file. Let the compiler manage these internal processing processes for you. Anyway, the final generated manifest configuration result It's all the same. However, this configuration method with smart prompts is much more convenient than directly modifying the AndroidManifest.xml file.

Of course, this is just another way for the VS2015 compiler to intelligently configure the Android application list. It is also a commonly used way to configure the list in C# programming. However, if you are still used to directly modifying the AndroidManifest.xml file in the project like Java programming, and you can also tolerate inexplicable errors caused by inconsistent configurations, you can also continue to use the method of directly modifying the AndroidManifest.xml file. Anyway, Java programming The staff are already used to changing the original configuration method in the past, and they are numb to this method. But for C# programming, this kind of stupid implementation idea of ​​letting programmers configure this configuration and that by themselves is really real. It's intolerable.

In short, I still prefer to configure it in the AssemblyInfo.cs file. This method not only allows you to use smart prompts to intuitively see what configurable options there are, but also allows you to You can see if the configuration is wrong.

Starting from this chapter, we will use this method to configure a manifest that works throughout the entire application, instead of directly modifying the AndroidManifest.xml file.

2. Create a more flexible custom adapter

In the main interface of the previous chapter, we used the simplest method: directly create a string array to list the sample navigation . Although this method is simple, it is the least flexible and stupid method.

In this section we will learn how to make the content displayed on the main interface more flexible, which is also a commonly used method in actual projects.

1. Where to define the adapter

Generally, which class the adapter targets is defined in the file containing this class. For example, to write an adapter for use in the MainActivity class, define it in the MainActivity.cs file.

2. Create your own list item class

Which list items you want to create depends on your needs. The following code demonstrates how to create the MyItems class:

public class MyItems

{

public string Title { get; set; }

public string Desc { get; set; }

}

3. Tips for creating a custom adapter

Once you have your own list item (MyItems class), you can customize it Specify it in the adapter.

The screenshot below demonstrates how to quickly create a custom adapter:

[Android] Chapter 7 (1) Manifest, Adapter and Layout--Make your program more elegant

Click the small triangle symbol to the right of the yellow light bulb in the pop-up drop-down box Select [Implement Abstract Class] and it will automatically add all the methods that need to be rewritten, without you having to type the code one by one.

Note: The "not implemented..." prompted here should actually be "not implemented...". This is a matter of Chinese translation. Just understand its actual meaning.

3. The main interface of the example in this chapter

All the source programs of the example in this chapter are in the ch07demos project.

Project name: ch07demos

Project template: Blank App(Android)

1. Running screenshots

The main interface running screenshots are as follows:

[Android] Chapter 7 (1) Manifest, Adapter and Layout--Make your program more elegant

2. Modify the target version of the release

In the solution explorer, right-click the [ch07demos] project, select [Properties], and change [Compile using Android version] option to "API Level 19", as shown below:

[Android] Chapter 7 (1) Manifest, Adapter and Layout--Make your program more elegant

3. Modify the manifest file (AssemblyInfo.cs)

Add an application-level theme to this file and other configurations. The complete content of the added AssemblyInfo.cs is as follows:

<span style="color: #0000ff">using</span><span style="color: #000000"> System.Reflection;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Runtime.CompilerServices;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Runtime.InteropServices;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> Android.App;

[assembly: AssemblyTitle(</span><span style="color: #800000">"</span><span style="color: #800000">ch07demos</span><span style="color: #800000">"</span><span style="color: #000000">)]
[assembly: AssemblyDescription(</span><span style="color: #800000">"</span><span style="color: #800000">布局控件的基本用法</span><span style="color: #800000">"</span><span style="color: #000000">)]
[assembly: AssemblyConfiguration(</span><span style="color: #800000">""</span><span style="color: #000000">)]
[assembly: AssemblyCompany(</span><span style="color: #800000">"</span><span style="color: #800000">毛毛雨的博客乐园(http://www.cnblogs/rainmj/)</span><span style="color: #800000">"</span><span style="color: #000000">)]
[assembly: AssemblyPRoduct(</span><span style="color: #800000">"</span><span style="color: #800000">rainmjAndroidDemos</span><span style="color: #800000">"</span><span style="color: #000000">)]
[assembly: AssemblyCopyright(</span><span style="color: #800000">"</span><span style="color: #800000">Copyright ?  2016</span><span style="color: #800000">"</span><span style="color: #000000">)]
[assembly: AssemblyTrademark(</span><span style="color: #800000">""</span><span style="color: #000000">)]
[assembly: AssemblyCulture(</span><span style="color: #800000">"</span><span style="color: #800000">zh-CN</span><span style="color: #800000">"</span><span style="color: #000000">)]
[assembly: ComVisible(</span><span style="color: #0000ff">false</span><span style="color: #000000">)]

[assembly:application(Theme </span>= <span style="color: #800000">"</span><span style="color: #800000">@android:style/Theme.DeviceDefault.Light</span><span style="color: #800000">"</span><span style="color: #000000">)]

[assembly: AssemblyVersion(</span><span style="color: #800000">"</span><span style="color: #800000">1.0.*</span><span style="color: #800000">"</span>)]
Copy after login

4. Modify the main interface (Main.axml)

Change Main.axml to the following code:

<span style="color: #0000ff"></span><span style="color: #ff00ff">xml version="1.0" encoding="utf-8"</span><span style="color: #0000ff">?></span>
<span style="color: #0000ff"><span style="color: #800000">LinearLayout </span><span style="color: #ff0000">xmlns:android</span><span style="color: #0000ff">="http://schemas.android.com/apk/res/android"</span><span style="color: #ff0000">
    android:orientation</span><span style="color: #0000ff">="vertical"</span><span style="color: #ff0000">
    android:layout_width</span><span style="color: #0000ff">="fill_parent"</span><span style="color: #ff0000">
    android:layout_height</span><span style="color: #0000ff">="fill_parent"</span><span style="color: #0000ff">></span>
    <span style="color: #0000ff"><span style="color: #800000">ListView
        </span><span style="color: #ff0000">android:minWidth</span><span style="color: #0000ff">="25px"</span><span style="color: #ff0000">
        android:minHeight</span><span style="color: #0000ff">="25px"</span><span style="color: #ff0000">
        android:layout_width</span><span style="color: #0000ff">="match_parent"</span><span style="color: #ff0000">
        android:layout_height</span><span style="color: #0000ff">="match_parent"</span><span style="color: #ff0000">
        android:id</span><span style="color: #0000ff">="@+id/listView1"</span> <span style="color: #0000ff">/></span>
<span style="color: #0000ff"></span><span style="color: #800000">LinearLayout</span><span style="color: #0000ff">></span></span></span>
Copy after login

5. Modify the main activity file (MainActivity.cs)

After all the examples in this chapter are completed, the code of MainActivity.cs is as follows:

<span style="color: #0000ff">using</span><span style="color: #000000"> Android.App;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> Android.Views;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> Android.Widget;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> Android.OS;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Collections.Generic;
</span><span style="color: #0000ff">using</span><span style="color: #000000"> ch07demos.SrcDemos;

</span><span style="color: #0000ff">namespace</span><span style="color: #000000"> ch07demos
{
    [Activity(Label </span>= <span style="color: #800000">"</span><span style="color: #800000">ch07demos</span><span style="color: #800000">"</span>, MainLauncher = <span style="color: #0000ff">true</span>, Icon = <span style="color: #800000">"</span><span style="color: #800000">@drawable/icon</span><span style="color: #800000">"</span><span style="color: #000000">)]
    </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> MainActivity : Activity
    {
        </span><span style="color: #0000ff">protected</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">void</span><span style="color: #000000"> OnCreate(Bundle bundle)
        {
            </span><span style="color: #0000ff">base</span><span style="color: #000000">.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            List</span><myitems> items = <span style="color: #0000ff">new</span> List<myitems><span style="color: #000000">()
            {
                </span><span style="color: #0000ff">new</span> MyItems {Title=<span style="color: #800000">"</span><span style="color: #800000">Demo01--LinearLayout</span><span style="color: #800000">"</span>,Desc=<span style="color: #800000">"</span><span style="color: #800000">演示线性布局的基本用法</span><span style="color: #800000">"</span><span style="color: #000000"> },
                </span><span style="color: #0000ff">new</span> MyItems {Title=<span style="color: #800000">"</span><span style="color: #800000">Demo02--GridLayout</span><span style="color: #800000">"</span>,Desc=<span style="color: #800000">"</span><span style="color: #800000">演示网格布局的基本用法</span><span style="color: #800000">"</span><span style="color: #000000"> },
                </span><span style="color: #0000ff">new</span> MyItems {Title=<span style="color: #800000">"</span><span style="color: #800000">Demo03--TableLayout</span><span style="color: #800000">"</span>,Desc=<span style="color: #800000">"</span><span style="color: #800000">演示表格布局的基本用法</span><span style="color: #800000">"</span><span style="color: #000000"> },
                </span><span style="color: #0000ff">new</span> MyItems {Title=<span style="color: #800000">"</span><span style="color: #800000">Demo04--RelativeLayout</span><span style="color: #800000">"</span>,Desc=<span style="color: #800000">"</span><span style="color: #800000">演示相对布局的基本用法</span><span style="color: #800000">"</span><span style="color: #000000"> },
                </span><span style="color: #0000ff">new</span> MyItems {Title=<span style="color: #800000">"</span><span style="color: #800000">Demo05--FrameLayout</span><span style="color: #800000">"</span>,Desc=<span style="color: #800000">"</span><span style="color: #800000">演示帧布局的基本用法</span><span style="color: #800000">"</span><span style="color: #000000"> }
            };
            ListView listView1 </span>= FindViewById<listview><span style="color: #000000">(Resource.Id.listView1);
            listView1.Adapter </span>= <span style="color: #0000ff">new</span> MyAdapter(<span style="color: #0000ff">this</span><span style="color: #000000">, items);
            listView1.ItemClick </span>+= (s, e) =><span style="color: #000000">
            {
                </span><span style="color: #0000ff">int</span> index = e.Position + <span style="color: #800080">1</span><span style="color: #000000">;
                </span><span style="color: #0000ff">switch</span><span style="color: #000000"> (index)
                {
                    </span><span style="color: #0000ff">case</span> <span style="color: #800080">1</span><span style="color: #000000">:
                        StartActivity(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(Demo01LinearLayout));
                        </span><span style="color: #0000ff">break</span><span style="color: #000000">;
                    </span><span style="color: #0000ff">case</span> <span style="color: #800080">2</span><span style="color: #000000">:
                        StartActivity(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(Demo02GridLayout));
                        </span><span style="color: #0000ff">break</span><span style="color: #000000">;
                    </span><span style="color: #0000ff">case</span> <span style="color: #800080">3</span><span style="color: #000000">:
                        StartActivity(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(Demo03TableLayout));
                        </span><span style="color: #0000ff">break</span><span style="color: #000000">;
                    </span><span style="color: #0000ff">case</span> <span style="color: #800080">4</span><span style="color: #000000">:
                        StartActivity(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(Demo04RelativeLayout));
                        </span><span style="color: #0000ff">break</span><span style="color: #000000">;
                    </span><span style="color: #0000ff">case</span> <span style="color: #800080">5</span><span style="color: #000000">:
                        StartActivity(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(Demo05FrameLayout));
                        </span><span style="color: #0000ff">break</span><span style="color: #000000">;
                }
            };
        }
    }

    </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> MyItems
    {
        </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Title { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
        </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Desc { <span style="color: #0000ff">get</span>; <span style="color: #0000ff">set</span><span style="color: #000000">; }
    }

    </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> MyAdapter : BaseAdapter<myitems><span style="color: #000000">
    {
        </span><span style="color: #0000ff">private</span> List<myitems><span style="color: #000000"> items;
        </span><span style="color: #0000ff">private</span><span style="color: #000000"> Activity context;

        </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">int</span><span style="color: #000000"> Count
        {
            </span><span style="color: #0000ff">get</span><span style="color: #000000">
            {
                </span><span style="color: #0000ff">return</span><span style="color: #000000"> items.Count;
            }
        }

        </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> MyItems <span style="color: #0000ff">this</span>[<span style="color: #0000ff">int</span><span style="color: #000000"> position]
        {
            </span><span style="color: #0000ff">get</span><span style="color: #000000">
            {
                </span><span style="color: #0000ff">return</span><span style="color: #000000"> items[position];
            }
        }

        </span><span style="color: #0000ff">public</span> MyAdapter(Activity context, List<myitems><span style="color: #000000"> items)
        {
            </span><span style="color: #0000ff">this</span>.context =<span style="color: #000000"> context;
            </span><span style="color: #0000ff">this</span>.items =<span style="color: #000000"> items;
        }

        </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">long</span> GetItemId(<span style="color: #0000ff">int</span><span style="color: #000000"> position)
        {
            </span><span style="color: #0000ff">return</span><span style="color: #000000"> position;
        }

        </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> View GetView(<span style="color: #0000ff">int</span><span style="color: #000000"> position, View convertView, ViewGroup parent)
        {
            </span><span style="color: #0000ff">var</span> item =<span style="color: #000000"> items[position];
            View view </span>= <span style="color: #0000ff">null</span><span style="color: #000000">;
            view </span>= context.LayoutInflater.Inflate(Android.Resource.Layout.SimpleListItem2, <span style="color: #0000ff">null</span><span style="color: #000000">);
            view.FindViewById</span><textview>(Android.Resource.Id.Text1).Text =<span style="color: #000000"> item.Title;
            view.FindViewById</span><textview>(Android.Resource.Id.Text2).Text =<span style="color: #000000"> item.Desc;
            </span><span style="color: #0000ff">return</span><span style="color: #000000"> view;
        }
    }
}</span></textview></textview></myitems></myitems></myitems></listview></myitems></myitems>
Copy after login

OK, that’s the first lecture of this chapter.


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

New report delivers damning assessment of rumoured Samsung Galaxy S25, Galaxy S25 Plus and Galaxy S25 Ultra camera upgrades New report delivers damning assessment of rumoured Samsung Galaxy S25, Galaxy S25 Plus and Galaxy S25 Ultra camera upgrades Sep 12, 2024 pm 12:23 PM

In recent days, Ice Universe has been steadily revealing details about the Galaxy S25 Ultra, which is widely believed to be Samsung's next flagship smartphone. Among other things, the leaker claimed that Samsung only plans to bring one camera upgrade

Samsung Galaxy S25 Ultra leaks in first render images with rumoured design changes revealed Samsung Galaxy S25 Ultra leaks in first render images with rumoured design changes revealed Sep 11, 2024 am 06:37 AM

OnLeaks has now partnered with Android Headlines to provide a first look at the Galaxy S25 Ultra, a few days after a failed attempt to generate upwards of $4,000 from his X (formerly Twitter) followers. For context, the render images embedded below h

IFA 2024 | TCL\'s NXTPAPER 14 won\'t match the Galaxy Tab S10 Ultra in performance, but it nearly matches it in size IFA 2024 | TCL\'s NXTPAPER 14 won\'t match the Galaxy Tab S10 Ultra in performance, but it nearly matches it in size Sep 07, 2024 am 06:35 AM

Alongside announcing two new smartphones, TCL has also announced a new Android tablet called the NXTPAPER 14, and its massive screen size is one of its selling points. The NXTPAPER 14 features version 3.0 of TCL's signature brand of matte LCD panels

Vivo Y300 Pro packs 6,500 mAh battery in a slim 7.69 mm body Vivo Y300 Pro packs 6,500 mAh battery in a slim 7.69 mm body Sep 07, 2024 am 06:39 AM

The Vivo Y300 Pro just got fully revealed, and it's one of the slimmest mid-range Android phones with a large battery. To be exact, the smartphone is only 7.69 mm thick but features a 6,500 mAh battery. This is the same capacity as the recently launc

Samsung Galaxy S24 FE billed to launch for less than expected in four colours and two memory options Samsung Galaxy S24 FE billed to launch for less than expected in four colours and two memory options Sep 12, 2024 pm 09:21 PM

Samsung has not offered any hints yet about when it will update its Fan Edition (FE) smartphone series. As it stands, the Galaxy S23 FE remains the company's most recent edition, having been presented at the start of October 2023. However, plenty of

New report delivers damning assessment of rumoured Samsung Galaxy S25, Galaxy S25 Plus and Galaxy S25 Ultra camera upgrades New report delivers damning assessment of rumoured Samsung Galaxy S25, Galaxy S25 Plus and Galaxy S25 Ultra camera upgrades Sep 12, 2024 pm 12:22 PM

In recent days, Ice Universe has been steadily revealing details about the Galaxy S25 Ultra, which is widely believed to be Samsung's next flagship smartphone. Among other things, the leaker claimed that Samsung only plans to bring one camera upgrade

Xiaomi Redmi Note 14 Pro Plus arrives as first Qualcomm Snapdragon 7s Gen 3 smartphone with Light Hunter 800 camera Xiaomi Redmi Note 14 Pro Plus arrives as first Qualcomm Snapdragon 7s Gen 3 smartphone with Light Hunter 800 camera Sep 27, 2024 am 06:23 AM

The Redmi Note 14 Pro Plus is now official as a direct successor to last year'sRedmi Note 13 Pro Plus(curr. $375 on Amazon). As expected, the Redmi Note 14 Pro Plus heads up the Redmi Note 14 series alongside theRedmi Note 14and Redmi Note 14 Pro. Li

iQOO Z9 Turbo Plus: Reservations begin for the potentially beefed-up series flagship iQOO Z9 Turbo Plus: Reservations begin for the potentially beefed-up series flagship Sep 10, 2024 am 06:45 AM

OnePlus'sister brand iQOO has a 2023-4 product cycle that might be nearlyover; nevertheless, the brand has declared that it is not done with itsZ9series just yet. Its final, and possibly highest-end,Turbo+variant has just beenannouncedas predicted. T

See all articles