مثالی از Context Menu در اندروید
چهارشنبه 6 آبان 1394در این مقاله قصد داریم یک Context Menu بسازیم و از طریق این Context Menu با انتخاب کردن یک آیتم یک Toast نمایش داده شود.
در زیر یک مثال ساده بیان می کنیم:
داخل ListView، activity زیر را بنویسید:
<RelativeLayout 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" tools:context=".MainActivity" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="66dp" android:layout_marginTop="53dp" > </ListView> </RelativeLayout>
یک ListView تعریف کرده ایم که تعدادی لیست به صورت دستی پر می نماید
داخل کلاس جاوا باید قطعه کد زیر را بنویسید:
import android.app.Activity; import android.os.Bundle; import android.os.Bundle; import android.app.Activity; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class MyActivity extends Activity { ListView listView1; String contacts[]={"زهرا","مریم","سحر","مهرسا","نیلوفر"}; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView1=(ListView)findViewById(R.id.listView1); ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,contacts); listView1.setAdapter(adapter); // Register the ListView for Context menu registerForContextMenu(listView1); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle("انتخاب آیتم"); menu.add(0, v.getId(), 0, "تماس");//groupId, itemId, order, title menu.add(0, v.getId(), 0, "پیام"); } @Override public boolean onContextItemSelected(MenuItem item){ if(item.getTitle()=="تماس"){ Toast.makeText(getApplicationContext(),"کد تماس",Toast.LENGTH_LONG).show(); } else if(item.getTitle()=="پیام"){ Toast.makeText(getApplicationContext(),"ارسال کد پیام",Toast.LENGTH_LONG).show(); }else{ return false; } return true; } }
یک لیست ویو تعریف کرده است و اسم مخاطبان را نوشته است، در متد OnCreate باید لیست ویو را تعریف کند و با یک ArrayAdapter لیست ویو صدا زده می شود
حالا متد OnCreateContexMenu را می نویسد و دو گزینه ی تماس و پیام را اضافه می کند
می خواهیم فقط یک کار کوچک انجام شود که با فشار بر روی هر مخاطب یک منو باز شود و دو گزینه ی تماس و یا پیام داشته باشد
که با زدن هر کدام از منو یک Toast نمایش داده شود
- Android
- 2k بازدید
- 3 تشکر