آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ایجاد context menu برای ایتم های لیست ویو (حل شد)

sana ebadi  9 سال پیش  9 سال پیش
+1 0

سلام بچه ها ذامیدوارم حالتون خوب باشه :)

من یه لیست ویو ساختم به این صورت و contextMenu برای ایتم هاش :)

کدام اینه :

//MainActivity

public class MainActivity extends AppCompatActivity {

private String[] names;
private ListView lst_content;
private ViewGroup linear_content;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


names = new String[]{
"Sana", "Sara", "Sami", "Sani", "Baba", "Mom", "Ali Reza"};
  MyAdapter adapter = new MyAdapter(getApplicationContext());
lst_content = (ListView) findViewById(R.id.lst_content);
lst_content.setAdapter(adapter);

registerForContextMenu(lst_content);
}

//کلاس اداپتر که یک کلاس داخلی در mainActivityهستش
 private class MyAdapter extends BaseAdapter {

LayoutInflater mInflater;

public MyAdapter(Context context) {
mInflater = LayoutInflater.from(context);

}

@Override
public int getCount() {
return names.length;
}

@Override
public Object getItem(int position) {
return position;
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

View view;

if (convertView == null) {
view = mInflater.inflate(R.layout.items_layout, parent, false);

} else {
view = convertView;
}

TextView txt_name = (TextView) view.findViewById(R.id.txt_name);
txt_name.setText(names[position]);
linear_content = (ViewGroup) view.findViewById(R.id.linear_content);

linear_content.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

Intent intent = new Intent(MainActivity.this , DetailActivity.class);
MainActivity.this.startActivity(intent);
}
});

return view;
}
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);

AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;

menu.setHeaderTitle("Options...");
menu.add(0, v.getId(), 0, "Call");
menu.add(0, v.getId(), 0, "Sms");
}


@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getTitle() == "Call") {
Toast.makeText(getApplicationContext(), "Call", Toast.LENGTH_SHORT).show();

} else if (item.getTitle() == "Sms") {
Toast.makeText(getApplicationContext(), "Sms", Toast.LENGTH_SHORT).show();

} else {
return false;
}

return true;
}
}
 
 
 
 

ولی وقتی روی ایتماها longClick میکنم هیچ contextMenu ایی نمایش داده نمیشه .ن اروری و ن کرشی :(

مشکل چی میتونه باشه بچه ها ؟

ممنون از شما ... یا علی 

0 0
ببخشید متد LongClick رو کجا نوشتید؟ (9 سال پیش)
0 0
لازم نیس !!! کلا خاصیت contextMenu اینو میگه با کلیک طولانی نمایش داده میشه دوست من . و ربطی به نوشتن متد onLong نیست :) (9 سال پیش)
+1 0
اهاان فکر کردم شبیه به ریسایکلر ویو هست!!! (9 سال پیش)
0 0
کلا دوست عزیز این منو (Context menu) ربطی به ویو نداره . فقط یک ویو میخواد میتونه لیست ویو باشه میتونه ریسایکلر ویو باشه میتونه TextView , ImageView .... یا هر ویویی دیگه ای باشه و ربطی به setOnLongClickListener نداره . فقط برا نمایشش باید یک کلیک نسبتا طولانی انجام شه ن یک کلیک ساده ! اوکی :) (9 سال پیش)
+1 0
سلام . امیدوارم حال شما هم خوب باشه . کاشکی بین کلاس ها یه خط میگذاشتید که بتونیم ب تفکیک کدها رو بخونیم . ببینید این لینک بدردتون میخوره : لینک (9 سال پیش)
+1 0
ممنون از شما ولی کلاس های جدا نیست دوست من فقط اون کلاس اداپتر من یک inearClass هست که مشخصه و بقیش خود activityMain هست چشم به لینک سر میزنم مرسی از شما :) (9 سال پیش)
+1 0
دوست من @Ak1369 درست شد ممنون از لینکی که پیشنهاد دادین درست شد .:) (9 سال پیش)
+1 0
کجاش مشکل داشت همون بخش رو برای استفاده میگذاشتید. (9 سال پیش)
0 0
کلا دوست من این چیزی که من میخوام نمیشه ینی با اداپتر جور در نمیاد ولی وقتی بخوام اون لیست ویوی که از یه ارایه ی استاتیک و یک لی اوت خود اندروید استفاده میشه اوکیه مشکلی نیس . و من برای ریسایکر ویو ساختم عالی بود ینی از یه لینک دیگه ساختم اینم لینک لینک برای ریسایکلر استفاده کردم عالی بود ولی برای لیست ویو ن دیگه چون نمیهوام با لیست ویو کارو انجام بدم با ریسایکلر جور شد . بارم ممنون :) (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .