<? xml version ="1.0" encoding ="utf-8" ? >
< LinearLayout
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation ="vertical" >
< Button
android:id ="@+id/FirstExample"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:text ="First Example" ></ Button >
< Button
android:id ="@+id/SecondExample"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:text ="Second Example" ></ Button >
</ LinearLayout >
* This source code was highlighted with Source Code Highlighter .
[Activity(Label = "My first mono android activity" , MainLauncher = true , Icon = "@drawable/icon" )]
public class MyMainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base .OnCreate(bundle);
SetContentView(Resource.Layout.Main);
Button firstExample = FindViewById<Button>(Resource.Id.FirstExample);
firstExample.Click += firstExample_Click;
Button secondExample = FindViewById<Button>(Resource.Id.SecondExample);
secondExample.Click += secondExample_Click;
}
void firstExample_Click( object sender, EventArgs e)
{
Intent titlesIntent = new Intent( this , typeof (TitlesListActivity));
StartActivity(titlesIntent);
}
void secondExample_Click( object sender, EventArgs e)
{
Intent friendlyListIntent = new Intent( this , typeof (MoreFriendlyRssFeedActivity));
StartActivity(friendlyListIntent);
}
}
* This source code was highlighted with Source Code Highlighter .
public class RssReader
{
private const string _title = "title" ;
private const string _link = "link" ;
private const string _item = "item" ;
private const string _channel = "channel" ;
private static Func< XElement , RssListItem> GetTitlesAndLinksFunc = (x => new RssListItem { Title = x.Element(_title).Value, Link = x.Element(_link).Value });
public static IList<RssListItem> GetRssListItems( params string [] rssUris)
{
List <RssListItem> fullList = new List <RssListItem>();
IEnumerable < XElement > itemsFromConcreteIteration;
foreach ( string rssUri in rssUris)
{
itemsFromConcreteIteration = GetRssFeedChannel(rssUri).Elements(_item);
fullList.AddRange(itemsFromConcreteIteration.Select(GetTitlesAndLinksFunc));
}
return fullList;
}
public static IEnumerable < string > GetTitles( string rssUri)
{
IEnumerable < XElement > items = GetRssFeedChannel(rssUri).Elements(_item);
return items.Select(x => x.Element(_title).Value);
}
public static XElement GetRssFeedChannel( string rssUri)
{
XElement feed = XElement .Load(rssUri);
return feed.Element(_channel);
}
}
public class RssListItem
{
public string Title { get ; set ; }
public string Link { get ; set ; }
}
* This source code was highlighted with Source Code Highlighter .
[Activity(Label = "List" )]
public class TitlesListActivity : ListActivity
{
protected override void OnCreate(Bundle bundle)
{
base .OnCreate(bundle);
var titles = RssReader.GetTitles( "http://habrahabr.ru/rss/blogs/mono/" );
ListAdapter = new ArrayAdapter< string >( this , Android.Resource.Layout.SimpleListItem1, titles.ToArray());
}
}
* This source code was highlighted with Source Code Highlighter .
< TextView xmlns:android ="http://schemas.android.com/apk/res/android"
android:id ="@android:id/text1"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:textAppearance ="?android:attr/textAppearanceLarge"
android:gravity ="center_vertical"
android:paddingLeft ="6dip"
android:minHeight ="?android:attr/listPreferredItemHeight"
/>
* This source code was highlighted with Source Code Highlighter .
<? xml version ="1.0" encoding ="utf-8" ? >
< resources >
< string name ="ApplicationName" > MyFirstMonoAndroidApplication </ string >
< string-array name ="frameworks" >
< item > Mono </ item >
< item > .Net </ item >
< item > Mono and .Net </ item >
</ string-array >
</ resources >
* This source code was highlighted with Source Code Highlighter .
<? xml version ="1.0" encoding ="utf-8" ? >
< LinearLayout
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation ="vertical" >
< Spinner
android:id ="@+id/FrameworkSelector"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content" >
</ Spinner >
< ListView
android:id ="@+id/RssEntries"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content" >
</ ListView >
</ LinearLayout >
* This source code was highlighted with Source Code Highlighter .
<? xml version ="1.0" encoding ="utf-8" ? >
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:padding ="6dip" >
< ImageButton
android:id ="@+id/LogoButton"
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
android:src ="@drawable/mono" >
</ ImageButton >
< TextView
android:id ="@+id/Title"
android:layout_width ="wrap_content"
android:layout_height ="wrap_content" >
</ TextView >
</ LinearLayout >
* This source code was highlighted with Source Code Highlighter .
[Activity(Label = "Friendly List" )]
public class MoreFriendlyRssFeedActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base .OnCreate(bundle);
SetContentView(Resource.Layout.MoreFriendlyRssFeed);
Spinner spinner = FindViewById<Spinner>(Resource.Id.FrameworkSelector);
spinner.ItemSelected += spinner_ItemSelected;
ArrayAdapter adapter = ArrayAdapter.CreateFromResource( this , Resource.Array.frameworks, Android.Resource.Layout.SimpleSpinnerItem);
adapter.SetDropDownViewResource(
Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinner.Adapter = adapter;
}
void spinner_ItemSelected( object sender, ItemEventArgs e)
{}
}
* This source code was highlighted with Source Code Highlighter .
< TextView xmlns:android ="http://schemas.android.com/apk/res/android"
android:id ="@android:id/text1"
style ="?android:attr/spinnerItemStyle"
android:singleLine ="true"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content" />
* This source code was highlighted with Source Code Highlighter .
public class RssListItemAdapter: ArrayAdapter<RssListItem>
{
private IList <RssListItem> Items;
public RssListItemAdapter(Context context, int textViewResourceId, IList<RssListItem> items)
: base (context, textViewResourceId, items)
{
Items = items;
}
public override View GetView( int position, View convertView, ViewGroup parent)
{
View view = convertView;
if (view == null )
{
LayoutInflater inflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService);
// , .
view = inflater.Inflate(Resource.Layout.RssRow, null );
}
//
RssListItem item = Items[position];
//
//
ImageButton btnLogo = (ImageButton)view.FindViewById(Resource.Id.LogoButton);
btnLogo.Click += delegate
{
Intent browserIntent = new Intent( "android.intent.action.VIEW" , Android.Net. Uri .Parse(item.Link));
Context.StartActivity(browserIntent);
};
// ( )
btnLogo.SetImageResource(item.Title.StartsWith( "Mono" ) ? Resource.Drawable.mono : Resource.Drawable.net);
//
TextView txtTitle = (TextView)view.FindViewById(Resource.Id.Title);
txtTitle.Text = item.Title;
//
return view;
}
}
* This source code was highlighted with Source Code Highlighter .
void spinner_ItemSelected( object sender, ItemEventArgs e)
{
ListView view = FindViewById<ListView>(Resource.Id.RssEntries);
switch (e.Position)
{
case 0:
view.Adapter = new RssListItemAdapter( this , Resource.Layout.RssRow, RssReader.GetRssListItems( "http://habrahabr.ru/rss/blogs/mono/" ));
break ;
case 1:
view.Adapter = new RssListItemAdapter( this , Resource.Layout.RssRow, RssReader.GetRssListItems( "http://habrahabr.ru/rss/blogs/net/" ));
break ;
case 2:
view.Adapter = new RssListItemAdapter( this , Resource.Layout.RssRow, RssReader.GetRssListItems( "http://habrahabr.ru/rss/blogs/mono/" , "http://habrahabr.ru/rss/blogs/net/" ));
break ;
}
}
* This source code was highlighted with Source Code Highlighter .
<? xml version ="1.0" encoding ="utf-8" ? >
< manifest xmlns:android ="http://schemas.android.com/apk/res/android" package ="First.MonoApp" android:versionCode ="1" android:versionName ="1.0" >
< application android:label ="MyMonoApp" >
</ application >
< uses-sdk android:minSdkVersion ="4" />
< uses-permission android:name ="android.permission.INTERNET" />
</ manifest >
* This source code was highlighted with Source Code Highlighter .
Source: https://habr.com/ru/post/119001/
All Articles