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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

阿晨1998 2021-06-10 16:02:17
我不是設(shè)計(jì)師,但是當(dāng)我得到這個(gè)項(xiàng)目時(shí),我無(wú)法打開一些屏幕,我認(rèn)為它們是屏幕,我們只重用了一些已經(jīng)創(chuàng)建的布局。無(wú)論如何有人可以幫助我嗎?@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個(gè)贊

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


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

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


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


要從此包裝器訪問(wèn)活動(dòng),您必須“解開”它。嘗試這樣的事情:


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());


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

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

Kotlin 中的遞歸解決方案:


fun Context.getActivity(): Activity? {

    return when (this) {

        is Activity -> this

        is ContextWrapper -> this.baseContext.getActivity()

        else -> null

    }

}

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




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

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

簡(jiǎn)單地使用上下文就可以了


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


查看完整回答
反對(duì) 回復(fù) 2021-06-23
  • 3 回答
  • 0 關(guān)注
  • 325 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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