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

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

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

سلام بچه ها 

بچه ها چجور میتونیم یه داده ای از جنس 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  رو بدیم چرا که این ایکون مخصوص تولبار هست.

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

موفق باشید.

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

 پاسخ صحیح

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

پس مجبور شدم که از یه 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 سال پیش
+1 0

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

 

+2 0
توی Stackoverflow یه سرچ بزنید آموزشش رو پیدا می کنید. (9 سال پیش)
+2 0
مرند جان شرمنده بابت تاخیر دو روز نبودم . خیلی ببخشید بانو بانو به این لینک که یکی از سوالات خودم بود سر بزن ولی دوستمون nin هم درس گفتن من خودم از stackیاد گرفتم ولی این لینکو یه سر بزن . موفق باشی لینک (9 سال پیش)
+1 0
بانو این لینک تو همین تاپیک دقت کن نوشتم لینک (9 سال پیش)
0 0
سپاسگزارم ، به کمک همین لینک و stack یاد گرفتم دوست عزیز . :) (9 سال پیش)

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