بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

کست int به view (حل شد) آموزش popupMenu

مدیریت گفتگو
sana ebadi 9 سال پیش
آخرین تغییر: 9 سال پیش

سلام بچه ها 

بچه ها چجور میتونیم یه داده ای از جنس int رو به یه view  تبدیل کنیم ؟ اصلا میشه ؟ 

دقت کنین من میخواستم توی یه برنامه از ایکون back خود sdkاندروید استفاده کنم اسمش هم  " android.R.id.hom " بود . خب این ایکون از جنس 

intهستش و وقتی میخواستم از popupMenu استفاده کنم برای پارامتر دومش از من یه View میخواست که من نداشتم من یه داده از جنس int دارم 

واسه همین خطا میگرفت .

PopupMenu popupMenu = new PopupMenu(MainActivity.this , img_popup);

 
 

پارامتر دوم که من اینجا یه imageViewقرار دادم و درست بود چون یه ویوو بود . ولی ایا راهی هست که بتونم 

android.R.id.home
 
 

این ایکونو تبدیل به viewکنم ؟ ممنون 

البته یه راهی هست ولی تبدیل int به view نیست این رو گفتن نمیشه. فقط یه راهی داره اونم استفاده از LayoutInflater هست .


LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view = inflater.inflate(R.layout.activity_main , MainActivity.this ,false);

ولی کار من ردیف شد . اینو برا شما میذارم استفاده کنید . هیچ چیز غیر ممکن نیست .

ولی میتونیم  جای پارامتر دوم  ایدی toolbar  رو بدیم چرا که این ایکون مخصوص تولبار هست.

اخرش خودم پیداش کردم .ههههه 

موفق باشید.

نظرات

Spirit 9 سال پیش
پارامتر دوم Viewـی هست که در Layout شما موجود هست (مثلا یه Button) و Popup زیر اون (یا بالاش) قراره ظاهر بشه :‌ لینک
sana ebadi 9 سال پیش
بله منم اینو میدونم مشکلم اینجاس که من اصلا ویوویی ندارم اوکی ؟ عکس من از جنس int هست؟ سوال من اینه ایا راهی هست که من int رو تبدیل به یه view هرچی باشه (button , ImageView ,....) کنم یا ن ؟
Spirit 9 سال پیش
خب بدون View که نمیشه PopupMenu رو نشون داد - برای سوال دومتون راه زیاد هست، جستجو: get drawable from id android
Reza 9 سال پیش
به جای img_popup که یک ویو میخواد نمیشه اینو بنویسی : findViewById(android.R.id.home)
sana ebadi 9 سال پیش
ن امتحان کردم نشد من الان با ویو هیچ مشکلی ندارم میخوام ببینم ایا واقعا اینی که میگم راهی نداره ؟
sana ebadi 9 سال پیش
ممنون بانو حتما تست میکنم ولی واقعا اگه راهی براش پیدا بشه خیلی خوب میشه .
Amir 9 سال پیش
خب همونطور که @Reza گفتن با findViewById میشه تبدیلش کرد (اینو هم بگم که واژه ی تبدیل int به View درست نیست چون که خروجی android.R.id.home که int هست آدرس عکس رو به ما میده): View img = (ImageView) findViewById(R.id.txt);
sana ebadi 9 سال پیش
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.activity_main , MainActivity.this ,false); ممنونم ولی اینم یه راه
Spirit 9 سال پیش
خداوکیلی سوال واضح نبود، من فکر میکردم هدف استفاده از اون آیکون اشاره شدست، ولی چیزی که تو تصویر پایینی قرار دادین دسترسی به اون دکمه Overflow هست.
sana ebadi 9 سال پیش
ن دیگه این همون دکمه ی back هست که من فقط ایکونشو تغییر دادم . با کد getSupportActionBar().setHomeAsUpIndicator(R.drawable.menu); خب یه ترفند بود که حلش کردم . ولی من خواستم بدونم که واقعا کست یه داده از جنس int به یه view امکان پذیر هست یا ن ؟ که خوشبختانه پیداش کردم.ممنون از لطف همگی .

پاسخ‌ها 2

مشاهده پاسخ صحیح
sana ebadi 9 سال پیش

 پاسخ صحیح

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

پس مجبور شدم که از یه view  استفاده کنم . تفاوتی نداشت . الان کداشو میذارم شاید به دردتون خورد. 

این کدای یه popupMenu هست .. که برای یه عکس نوشتم ....


ImageView img_popup = (ImageView) findViewById(R.id.img_popup);
img_popup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(SecondActivity.this , img_popup);
popupMenu.getMenuInflater().inflate(R.menu.popup_menu , popupMenu.getMenu());

popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();

Toast.makeText(SecondActivity.this , item.getTitle() , Toast.LENGTH_SHORT).show();

return true;
}
});
popupMenu.show();

}
});

این کدا رو بعد از تعریف imageView توی اکتیویتون  مینویسید . و فراموش نکنید که توی فایل menu یه منو بسازید مثلا  R.menu.popup_menu

که بتونید ازش استفاده کنید . الان براتون یه تصویر هم میذارم

نظرات

MarAnd 9 سال پیش

سلام ، ببخشین در قسمت پاسخ ها سوالم رو مطرح می کنم : من وقتی برنامم رو ران میکنم popup نداره . میشه بگین همین popup هایی رو که ساختین چه جوریه؟ تو انجمن یکی از بچه ها گفته بود ولی کدهاش ایراد داشت . ببینین من اصلا این قسمت رو توی toolbar ام ندارم . ممنون

 

نظرات

Amir 9 سال پیش
توی Stackoverflow یه سرچ بزنید آموزشش رو پیدا می کنید.
sana ebadi 9 سال پیش
مرند جان شرمنده بابت تاخیر دو روز نبودم . خیلی ببخشید بانو بانو به این لینک که یکی از سوالات خودم بود سر بزن ولی دوستمون nin هم درس گفتن من خودم از stackیاد گرفتم ولی این لینکو یه سر بزن . موفق باشی لینک
sana ebadi 9 سال پیش
بانو این لینک تو همین تاپیک دقت کن نوشتم لینک
MarAnd 9 سال پیش
سپاسگزارم ، به کمک همین لینک و stack یاد گرفتم دوست عزیز . :)

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