«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
ساخت لیست ویو با قابلیت جستوجوی الفبایی(جاوا-اندروید) :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

 

برای شروع کار یک پروژه جدید ایجاد می کنیم و اسمش رو ListView with Alphabetical قرار میدیم که به معنی لیست ویو به همراه حروف الفبا است.بر روی لایه برنامه از یک listview برای نمایش لیست میوه ها و از یک LinearLayout برای نمایش حروف اافبا استفاده می کنیم.(کدهای کامل لایه برنامه یا 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:orientation="horizontal"
android:paddingLeft="5dp"
tools:context=".MainActivity"
android:baselineAligned="false" >

<ListView
android:id="@+id/list_fruits"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingRight="5dp" >
</ListView>

<LinearLayout
android:id="@+id/side_index"
android:layout_width="50dp"
android:layout_height="fill_parent"
android:background="#c3c3c3"
android:gravity="center_horizontal"
android:orientation="vertical" >
</LinearLayout>

</LinearLayout>

بعد از اینکه لایه برنامه رو تکمیل کردیم نوبت اون میرسه که یک لایه جدید ایجاد کنیم به اسم side_index_item.xml تا حروف الفبا داخل اون قرار بگیره.ایجاد یک لایه و یک فایل xml رو در جلسه پنجاه و ششم میتونید ببینید.(کدهای کامل لایه جدید).

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/side_list_item"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center"
android:padding="3dp"
android:textSize="14sp" />

خیلی عالی ,بعد از اینکه لاهی های برنامه رو تکمیل کردیم وقت اون میرسه که اسم میوه هامون رو به لیست ویو اضافه کنیم.برای این کار از پوشه  values فایل String.xml رو انتخاب می کنیم  و ایتم های زیر رو بهش اضافه می کنیم.(لیست ایتم های فایل string).فایل string در واقع به نوعی وظیفه ذخیره سازی اطلاعات در قالب یک فایل xml رو برعهده داره.

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">ListView with Alphabetical</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>

<string-array name="fruits_array">
<item>Apples</item>
<item>Apricots</item>
<item>Avocado</item>
<item>Annona</item>
<item>Banana</item>
<item>Blueberry</item>
<item>Blackberry</item>
<item>Blackapple</item>
<item>Custard Apple</item>
<item>Clementine</item>
<item>Cantalope</item>
<item>Date</item>
<item>Elderberry</item>
<item>Fig</item>
<item>Grapefruit</item>
<item>Grape</item>
<item>Gooseberry</item>
<item>Guava</item>
<item>Honeydew melon</item>
<item>Jackfruit</item>
<item>Juniper Berry</item>
<item>Kiwi</item>
<item>Kumquat</item>
<item>Lemons</item>
<item>Limes</item>
<item>Lychee</item>
<item>Mango</item>
<item>Mandarin</item>
<item>Nectaraine</item>
<item>Orange</item>
<item>Olive</item>
<item>Prunes</item>
<item>Pears</item>
<item>Plum</item>
<item>Pineapple</item>
<item>Peach</item>
<item>Papaya</item>
<item>Pomelo</item>
<item>Raspberries</item>
<item>Rambutan</item>
<item>Strawberries</item>
<item>Sweety</item>
<item>Salmonberry</item>
<item>Tangerines</item>
<item>Tomato</item>
<item>Ugli</item>
<item>Watermelon</item>
<item>Woodapple</item>
</string-array>

</resources>

در بخش بعدی کلاس MainActivity.java رو اجرا میکنیم و کدهای زیر رو بهش اضافه می کنیم.در این اموزش با HashMap اشنا میشیم.(کدهای کامل کلاس MainActivity.java).

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {


Map<String, Integer> mapIndex;
ListView fruitList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//گرفتن اطلاعات از فایل xml
String[] fruits = getResources().getStringArray(R.array.fruits_array);

//ایجاد یک ارایه
Arrays.asList(fruits);

fruitList = (ListView) findViewById(R.id.list_fruits);
fruitList.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, fruits));

getIndexList(fruits);

displayIndex();

}

//با استفاده از hashmap کلید ها و حروف ها رو به صورت لیست نمایش میدیم
private void getIndexList(String[] fruits) {
mapIndex = new LinkedHashMap<String, Integer>();
for (int i = 0; i < fruits.length; i++) {
String fruit = fruits[i];
String index = fruit.substring(0, 1);

if (mapIndex.get(index) == null)
mapIndex.put(index, i);
}
}

//نمایش حروف الفبا
private void displayIndex() {
LinearLayout indexLayout = (LinearLayout) findViewById(R.id.side_index);

TextView textView;
List<String> indexList = new ArrayList<String>(mapIndex.keySet());
for (String index : indexList) {
textView = (TextView) getLayoutInflater().inflate(
R.layout.side_index_item, null);
textView.setText(index);
textView.setOnClickListener(this);
indexLayout.addView(textView);
}
}

public void onClick(View view) {
TextView selectedIndex = (TextView) view;
fruitList.setSelection(mapIndex.get(selectedIndex.getText()));
}


منبع :
http://appinapps.com/Articles_View.aspx?t=%D8%B3%D8%A7%D8%AE%D8%AA%20%D9%84%DB%8C%D8%B3%D8%AA%20%D9%88%DB%8C%D9%88%20%D8%A8%D8%A7%20%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA%20%D8%AC%D8%B3%D8%AA%D9%88%D8%AC%D9%88%DB%8C%20%D8%A7%D9%84%D9%81%D8%A8%D8%A7%DB%8C%DB%8C&gid=11&aid=127
موافقین ۰ مخالفین ۰ ۹۴/۰۱/۲۸
مدیرکل

نظرات (۱)

سلام.مرسی ا ز آموزشتون.این آموزش برای حالتی هست که مقادیر ثابت هستند ممنون میشم آموزشی برای حالتی که مقادیر لیست ویو از کاربر گرفته شوند قرار بدهید.
پاسخ:
سلام به سایت http://appinapps.com
مراجعه کنید. چون کدش رو از اونجا کپی کردم.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی