簡體   English   中英

Android:如何從片段中以編程方式單擊先前位於活動堆棧中活動中的按鈕?

[英]Android: How to programmatically click on a button previously located in an activity in the activity stack, from a fragment?

當我在 fragmentB 中時,如何模擬單擊位於堆棧中活動中的按鈕。

登錄活動A => 片段B。

我想模擬這樣的事情:

來自片段B的LoginActivityA.btnClick()

我嘗試使用這張票但沒有成功: Ticket1Ticket2Ticket3
這是我的代碼:
片段B:

//BEGIN TEST
String message="hello ";
Intent intent = new Intent(getActivity(), LoginActivity.class);
intent.putExtra("MESSAGE",message);
getActivity().setResult(2,intent);
getActivity().startActivityForResult(intent,2);
getActivity().finish();//finishing activity
//END TEST

登錄活動A:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        // check if the request code is same as what is passed  here it is 2
        if(requestCode==2)
        {
            //do the things u wanted
        }
    }  

我確切地說我盡量不啟動多個 LoginActivity 和 Fragment。 我只想使用 LoginActivity => Fragment 獲得一個堆棧

有任何想法嗎?

編輯:

從這張票中嘗試了這個,沒有成功:

((LoginActivity)getActivity()).login();

我從呈現的片段啟動了活動功能,但出現錯誤

“未找到可接受的模塊。本地版本為 0,遠程版本為 0。”

您可以使用帶有 onClick 方法的接口,該方法由您的活動實現,然后在片段 B 中隨時調用 onClick 方法並將活動傳遞給它。

雖然我認為你在做什么是錯誤的,你應該改變主意。

這不是一個好的做法,但如果您願意,可以通過以下方式調用您的活動 UI 元素

((Button) getActivity().findViewById(R.id.button_id)).performClick();

永遠記住,Android 是一個架構良好的平台,如果你正在嘗試做一些困難的事情,你可能不應該這樣做。 重新考慮您的設計模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM