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

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

OnClickListener() 在 Fragment 中崩潰

OnClickListener() 在 Fragment 中崩潰

MM們 2023-08-23 15:08:10
由于某種原因,當(dāng)我單擊應(yīng)用程序中的工具欄(工具欄)和浮動(dòng)按鈕(按鈕)時(shí),OnClickListener()方法使代碼片段和應(yīng)用程序崩潰盡管ImageButton(OnOff)處理程序運(yùn)行并且不會(huì)使片段崩潰分段public class ZnonkiFragment extends Fragment {    private SharedPreferences settings;    private ImageButton OnOff;    private ViewPager viewPager;    private DrawerLayout drawerLayout;    private MainActivity.PagerAdapter pagerAdapter;    private FloatingActionButton button;    final Context context = getActivity();    private androidx.appcompat.widget.Toolbar toolbar;    private TabLayout tabLayout;    private String ZvonOne, ZvonTwo;    private List<Fragment> list = new ArrayList<>();    private String url;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        View view =  inflater.inflate(R.layout.fragment_znonki, container,       toolbar =  view.findViewById(R.id.toolbar);       toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.menu));       toolbar.setNavigationOnClickListener(new View.OnClickListener() {           @Override           public void onClick(View view) {               Toast.makeText(context,"lel",Toast.LENGTH_LONG).show();           }       });        //...       addListenerOnButton(view);        return view;    }    public boolean checkString(String string) {        try {            Integer.parseInt(string);        } catch (Exception e) {            return false;        }        return true;    }    public void addListenerOnButton (final View viewOne){        OnOff = viewOne.findViewById(R.id.onOff);        button =  viewOne.findViewById(R.id.floatingActionButton);        OnOff.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {               //...        });
查看完整描述

3 回答

?
嚕嚕噠

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

我認(rèn)為這個(gè)問(wèn)題的主要原因是


final Context context = getActivity();

這是用在


toolbar.setNavigationOnClickListener(new View.OnClickListener() {

           @Override

           public void onClick(View view) {

               Toast.makeText(context,"lel",Toast.LENGTH_LONG).show();

           }

       });

請(qǐng)注意 getActivity() 方法返回附加此片段的當(dāng)前活動(dòng)。并且您在片段對(duì)象在附加到活動(dòng)之前創(chuàng)建時(shí)調(diào)用。


您可以將上面的代碼更改為:


Context context;

并將該方法重寫(xiě)為


@Override

    public void onAttach(Context context) {

        super.onAttach(context);

        this.context = context;

    }

希望這能回答您的問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2023-08-23
?
守候你守候我

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

解決辦法很簡(jiǎn)單


在您的片段類(lèi)文件中,不要?jiǎng)?chuàng)建用于調(diào)用單擊事件的自定義函數(shù),而是可以通過(guò)簡(jiǎn)單地在類(lèi)文件中實(shí)現(xiàn)它們?nèi)缓蟾采w它來(lái)使用 android 的默認(rèn)方法。這使得代碼在將來(lái)更加簡(jiǎn)單和可重用。


public class ZnonkiFragment extends Fragment implements View.OnClickListener, View.OnLongClickListener {

? ? private SharedPreferences settings;

? ? private ImageButton OnOff;

? ? private ViewPager viewPager;

? ? private DrawerLayout drawerLayout;

? ? private FloatingActionButton button;

? ? final Context context = getActivity();

? ? private TabLayout tabLayout;

? ? private String ZvonOne, ZvonTwo;

? ? private List<Fragment> list = new ArrayList<>();

? ? private String url;

? ? private Toolbar mToolbar;


? ? @Override

? ? public View onCreateView(LayoutInflater inflater, ViewGroup container,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Bundle savedInstanceState) {

? ? ? ? View view = inflater.inflate(R.layout.fragment_znonki, container, false);

? ? ? ? mToolbar = view.findViewById(R.id.toolbar);

? ? ? ? mToolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_launcher_background));

? ? ? ? mToolbar.setNavigationOnClickListener(new View.OnClickListener() {

? ? ? ? ? ? @Override

? ? ? ? ? ? public void onClick(View view) {

? ? ? ? ? ? ? ? Toast.makeText(context, "lel", Toast.LENGTH_LONG).show();

? ? ? ? ? ? }

? ? ? ? });

? ? ? ? //...


? ? ? ? OnOff = view.findViewById(R.id.onOff);

? ? ? ? OnOff.setOnClickListener(this);

? ? ? ? OnOff.setOnLongClickListener(this);


? ? ? ? button = view.findViewById(R.id.floatingActionButton);


? ? ? ? return view;

? ? }


? ? public boolean checkString(String string) {

? ? ? ? try {

? ? ? ? ? ? Integer.parseInt(string);

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? return true;

? ? }


? ? @Override

? ? public void onClick(View view) {

? ? ? ? switch (view.getId()) {

? ? ? ? ? ? case R.id.onOff:

? ? ? ? ? ? ? ? //call your onclick function here...

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? case R.id.floatingActionButton:

? ? ? ? ? ? ? ? //call your onclick function here...

? ? ? ? ? ? ? ? break;

? ? ? ? }

? ? }


? ? @Override

? ? public boolean onLongClick(View view) {

? ? ? ? switch (view.getId()) {

? ? ? ? ? ? case R.id.floatingActionButton:

? ? ? ? ? ? ? ? //call your long click function here...

? ? ? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? return false;

? ? }

}

由于庫(kù)導(dǎo)入不當(dāng),工具欄崩潰了。如果您尚未在 gradle 文件中使用 androidx 庫(kù),那么您可以使用簡(jiǎn)單的工具欄,即“import android.support.v7.widget.Toolbar”。這肯定會(huì)阻止工具欄上的 onclick 崩潰。如果有任何問(wèn)題,請(qǐng)告訴我。謝謝。


查看完整回答
反對(duì) 回復(fù) 2023-08-23
?
森林海

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

你不需要這個(gè):

final?Context?context?=?getActivity();

如果您需要訪(fǎng)問(wèn) Fragment 中的上下文,您可以調(diào)用requireContext()如果您需要訪(fǎng)問(wèn) Activity,您可以調(diào)用requireActivity()

所以你的吐司消息可以變成:

Toast.makeText(requireContext(),"lel",Toast.LENGTH_LONG).show();


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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