مثالی از 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 تشکر