در این آموزش قصد داریم که چگونگی ساخت یک لیست (فهرست) ، با استفاده از ListView در
طراحی نرم افزار اندروید را شرح بدهیم. برای این منظور، یک پروژه می سازیم که اولین صفحه آن (activity اصلی)، به صورت یک لیست باشد.
در
برنامه eclipse ، ابتدا یک پروژه اندروید با نام Kelidestan.com بسازید
(نام package را برابر com.kelidestan.example انتخاب کنید. نام activity
اصلی را برابر MainActivity انتخاب کنید و فایل xml متناظر آن را هم،
activity_main انتخاب کنید).
ساخت نرم افزار موبایل
،قرار است که 5 نام ماشین را درون لیست خود داشته باشیم و باید این نام ها
را در یک فایل ذخیره کنیم. بنابراین، یک فایل xml با نام cars.xml می
سازیم و در آن، نام های مورد نظرمان برای لیست را ذخیره ممی کنیم. این فایل
را درون فولدر values می سازیم :
تولید نرم افزار موبایل،ساخت نرم افزار ios
کدهای فایل cars.xml را به صورت زیر می نویسیم :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="names">
<item name="name_1">پراید</item>
<item name="name_2">پژو 405</item>
<item name="name_3">پژو 206</item>
<item name="name_4">پژو پارس</item>
<item name="name_5">سمند</item>
</string-array>
</resources>
اکنون
باید فایل activity_main.xml را تغییر بدهیم. تمامی عناصر درون آن را حذف
می کنیم و سپس، از منوی Composite ، گزینه ListView را انتخاب کرده و به
درون صفحه گرافیکی فایل می کشیم. سپس اندازه ListView را بزرگ می کنیم تا
کل صفحه گرافیکی را پر کند.
پس از این تغییرات، کدهای فایل activity_main.xml به صورت زیر خواهد بود :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</ListView>
</LinearLayout>
به این بخش از کدها توجه کنید :
android:id="@+id/listView1"
باید آن را به صورت زیر تغییر دهیم :
android:id="@android:id/list"
بنابراین درنهایت، کدهای فایل activity_main.xml به صورت زیر خواهد بود :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</ListView>
</LinearLayout>
فایل MainActivity.java را باز می کنیم، کدهای آن به صورت زیر می باشد :
package com.kelidestan.example;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
کدها را به صورت زیر تغییر می دهیم :
package com.kelidestan.example;
import android.os.Bundle;
import android.app.ListActivity;
import android.view.Menu;
import android.widget.ArrayAdapter;
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.cars)));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
مهمترین
تغییر، تغییر کلاس Activity به ListActivity می باشد (تقریبا در ابتدای
کدها). همچنین package مربوط به آن را import کرده ایم.