第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

android.view.ContextThemeWrapper 不能轉(zhuǎn)換為

android.view.ContextThemeWrapper 不能轉(zhuǎn)換為

阿晨1998 2021-06-10 16:02:17
我不是設(shè)計(jì)師,但是當(dāng)我得到這個項(xiàng)目時,我無法打開一些屏幕,我認(rèn)為它們是屏幕,我們只重用了一些已經(jīng)創(chuàng)建的布局。無論如何有人可以幫助我嗎?@Override public void onBindViewHolder(@NonNull final ProductsAdapter.ViewHolder holder, final int position) { String imageUrl = ProductsList.get(position).getImage();    holder.itemName.setText(ProductsList.get(position).getName());    Picasso.with(context).load(imageUrl).into(holder.itemImage);    holder.parentLayot.setOnClickListener(new View.OnClickListener() {        public String currentActivity;        @Override        public void onClick(View v) {            Activity activity = (Activity) v.getContext();            activity.runOnUiThread(bd);            String activityName = activity.getClass().getSimpleName();            // Toast.makeText(activity,ProductsList.get(position).getId(),Toast.LENGTH_SHORT).show();            if (activityName.equals("Product_View")){                // Toast.makeText(activity,"Click and pass",Toast.LENGTH_SHORT).show();                Intent intent = new Intent(activity, Second_Product_View.class);                intent.putExtra("item_name", ProductsList.get(position).getName());                intent.putExtra("item_id", ProductsList.get(position).getId());                intent.putExtra("item_category_name", ProductsList.get(position).getName());                intent.putExtra("item_category_id", ProductsList.get(position).getId());                activity.startActivity(intent);            } 
查看完整描述

3 回答

?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個贊

這一行可能是罪魁禍?zhǔn)祝?/p>


Activity activity = (Activity) v.getContext();

的觀點(diǎn)v傳遞給onClick()方法是相同的觀點(diǎn),即你分配聽者,所以v是一樣的holder.parentLayot。我不知道確切holder.parentLayot來自哪里,但很有可能(在 XML 中)此視圖(或其父視圖之一)具有android:theme屬性。


當(dāng)視圖具有該android:theme屬性時,它不會直接使用其活動的上下文。相反,android 框架會將 Activity 的上下文“包裝”在 aContextThemeWrapper中以修改視圖的主題。


要從此包裝器訪問活動,您必須“解開”它。嘗試這樣的事情:


private static Activity unwrap(Context context) {

    while (!(context instanceof Activity) && context instanceof ContextWrapper) {

        context = ((ContextWrapper) context).getBaseContext();

    }


    return (Activity) context;

}

然后,您可以在您的onClick()而不是直接轉(zhuǎn)換上下文中使用此方法:


Activity activity = unwrap(v.getContext());


查看完整回答
反對 回復(fù) 2021-06-23
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個贊

Kotlin 中的遞歸解決方案:


fun Context.getActivity(): Activity? {

    return when (this) {

        is Activity -> this

        is ContextWrapper -> this.baseContext.getActivity()

        else -> null

    }

}

檢查使用情況View.getContext()。




查看完整回答
反對 回復(fù) 2021-06-23
?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個贊

簡單地使用上下文就可以了


FragmentManager fragmentManager = ((AppCompatActivity) context).getSupportFragmentManager();


查看完整回答
反對 回復(fù) 2021-06-23
  • 3 回答
  • 0 關(guān)注
  • 303 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號