久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PopupWindow 不會在 EditText 長按上觸發系統上下文對

PopupWindow not triggering sytem context dialog on EditText long-press(PopupWindow 不會在 EditText 長按上觸發系統上下文對話框)
本文介紹了PopupWindow 不會在 EditText 長按上觸發系統上下文對話框的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

限時送ChatGPT賬號..

對不起,如果標題有點模糊.

Sorry if the title was a bit vague.

我正在 Freelancer 上開發一個應用程序,除了一些測試后客戶的投訴外,我幾乎完成了它.

I'm developing an app on Freelancer and I almost have it finished except for a complaint from the customer after some testing.

如果有意義的話,我會使用 PopupWindow 代替對話框來編輯上下文設置.我不想太具體而冒著泄露應用概念的風險,我相信客戶不會對此感到太高興.

I use a PopupWindow in place of a dialog to edit contextual settings, if that makes any sense. I don't want to be too specific and risk giving the app concept away, which I'm sure the customer wouldn't be too pleased about.

PopupWindow 被賦予了一個從 XML 擴展而來的布局的內容視圖.在該布局中有幾個 EditText 小部件.問題是那些 EditTexts 不會在長按時觸發默認的上下文對話框,該對話框提供文本/IME 選擇和剪切/復制/粘貼選項.

The PopupWindow is given a Content View of a layout inflated from XML. In that layout are several EditText widgets. The issue is that those EditTexts will not trigger the default contextual dialog on long press that presents options for text/IME selection, and cut/copy/paste.

我看到一個類似的問題試圖獲取 TouchTrigger 或其他東西,但如果沒有 setBackgroundDrawable(),它就無法工作,我已經嘗試使用簡單的 new ColorDrawable().還是不行.

I saw a similar question trying to get the TouchTrigger or something and it not working without setBackgroundDrawable(), which I've tried with a simple new ColorDrawable(). It still doesn't work.

有什么簡單的方法可以在 OnLongPressListener 中觸發系統默認的長按對話框,還是我必須自己移動天堂和地球來實現它?因為如果是這樣的話,我會為它寫一個 Fragment 并在事務中交換它.我知道這會奏效.

Is there any easy way to trigger the system-default long-press dialog in an OnLongPressListener, or will I have to move Heaven and Earth to implement it myself? Because if that's the case, I'll just write a Fragment for it and swap it out in a transaction. I know that'll work.

相關代碼:在啟動片段內部:

The relevant code: Inside the initiating fragment:

RulesDialog dialog;
PopupWindow window;

public void showAddRuleDialog(){
    dialog = new RulesDialog();

    View view = getView();

    window = new PopupWindow(dialog.initViews(this, null), view.getWidth(), view.getHeight(), true);

    window.setBackgroundDrawable(new ColorDrawable());

    dialog.setRulesDialogListener(new rulesDialogListener(){            

        @Override
        public void onSave(ViewHolder holder) {


            addRule(holder);

            window.dismiss();


        }

        @Override
        public void onCancel() {
            window.dismiss();

        }});

    int[] location = {0,0};
    view.getLocationOnScreen(location);



    window.showAtLocation(view, 0, location[0], location[1]);

在規則對話框中:

public class ViewHolder{
    public ViewHolder(View dialogView){
        name = (TextView) dialogView.findViewById(R.id.name);
        response = (TextView) dialogView.findViewById(R.id.response);

        senders = (TextView) dialogView.findViewById(R.id.senders);
        sendersAdd = (Button) dialogView.findViewById(R.id.sendersAdd);
        sendersEdit = (Button) dialogView.findViewById(R.id.sendersEdit);

        timeFrom = (TextView) dialogView.findViewById(R.id.from);
        timeFromEdit = (Button) dialogView.findViewById(R.id.timeBeforeEdit);
        timeTo = (TextView) dialogView.findViewById(R.id.to);
        timeToEdit = (Button) dialogView.findViewById(R.id.timeAfterEdit);

        keywords = (TextView) dialogView.findViewById(R.id.keywords);

        matchCase = (CheckBox) dialogView.findViewById(R.id.matchCase);
        matchAlone = (CheckBox) dialogView.findViewById(R.id.matchAlone);
        matchPlural = (CheckBox) dialogView.findViewById(R.id.matchPlural);

        cancel = (Button) dialogView.findViewById(R.id.cancel);
        save = (Button) dialogView.findViewById(R.id.save);


    }

    TextView name;
    TextView response;
    TextView senders;
    Button sendersAdd;
    Button sendersEdit;
    TextView timeFrom;
    Button timeFromEdit;
    TextView timeTo;
    Button timeToEdit;
    TextView keywords;

    CheckBox matchCase;
    CheckBox matchAlone;
    CheckBox matchPlural;

    Button cancel;
    Button save;


}

Activity activity;
ViewHolder holder;
Fragment fragment;



public View initViews(Fragment mFragment, Rule rule){
    fragment = mFragment;
    activity = fragment.getActivity();
    View dialogView = LayoutInflater.from(activity).inflate(R.layout.rules_dialog, null);

    holder = new ViewHolder(dialogView);

    final TextView senders = holder.senders;

    holder.sendersAdd.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            showContacts();
        }});

    holder.sendersEdit.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            editSenders(senders);

        }

    });

    final TextView timeFrom = holder.timeFrom;
    holder.timeFromEdit.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            showTimePickerDialog(timeFrom);             

        }

        });

    final TextView timeTo = holder.timeTo;
    holder.timeToEdit.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            showTimePickerDialog(timeTo);               

        }

        });


    holder.cancel.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            mListener.onCancel();

        }});        
    holder.save.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            mListener.onSave(holder);

        }});


    if(rule == null)
        rule = new Rule();


    holder.name.setText(rule.name);
    holder.response.setText(rule.response);

    holder.senders.setText(rule.senders.toString());
    holder.senders.setTag(rule.senders);                

    holder.keywords.setText(rule.keywords);

    holder.matchCase.setChecked(rule.matchCase);
    holder.matchAlone.setChecked(rule.matchAlone);
    holder.matchPlural.setChecked(rule.matchPlural);        

    holder.timeFrom.setTag(rule.timeFrom);                          
    holder.timeFrom.setText(Rules.formatTime(rule.timeFrom));

    holder.timeTo.setTag(rule.timeTo);
    holder.timeTo.setText(Rules.formatTime(rule.timeTo));

    return dialogView;
}

推薦答案

所以我嘗試將RulesDialog 重寫為片段,但效果不佳.當從它們操作的 Fragment 調用時,使 Fragment Transactions 正常工作時遇到問題.

So I tried rewriting RulesDialog as a fragment, and it didn't work out too well. Had issues with making Fragment Transactions work right when called from the Fragments they're operating on.

(我知道這不是碎片化的重點.我現在并不是真的打算編寫一個完全模塊化的應用程序.我只是想推出一款客戶會滿意的產品.)

(I know this isn't the point to fragments. I'm not really aiming to write a completely modular app right now. I just want to come out with a product the customer will be happy with.)

我最終將 RulesDialog 重寫為 Activity,并使用調用片段中的 startActivityForResult().然后使用 setResult() 將編輯后的數據傳回.這一切都很好地協同工作.

I ended up rewriting RulesDialog as an Activity instead, and using startActivityForResult() from the calling fragment. Then passing the edited data back with setResult(). It all works nicely in concert.

這篇關于PopupWindow 不會在 EditText 長按上觸發系統上下文對話框的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Cut, copy, paste in android(在android中剪切、復制、粘貼)
android EditText blends into background(android EditText 融入背景)
Change Line Color of EditText - Android(更改 EditText 的線條顏色 - Android)
EditText showing numbers with 2 decimals at all times(EditText 始終顯示帶 2 位小數的數字)
Changing where cursor starts in an expanded EditText(更改光標在展開的 EditText 中的開始位置)
EditText, adjustPan, ScrollView issue in android(android中的EditText,adjustPan,ScrollView問題)
主站蜘蛛池模板: 国产有码 | 欧美专区在线 | 毛片一区二区三区 | 欧美精品久久久 | 欧美精品一区二区在线观看 | 亚洲444kkkk在线观看最新 | 成人3d动漫一区二区三区91 | 精品欧美一区免费观看α√ | 久久91精品 | 天天操夜夜操 | 国产精品高清在线 | 一区视频 | www亚洲免费国内精品 | 国产色网 | 免费看黄视频网站 | 国产目拍亚洲精品99久久精品 | 亚洲视频免费在线播放 | 精品毛片| 一级中国毛片 | 野狼在线社区2017入口 | 亚洲a在线观看 | 性高湖久久久久久久久aaaaa | 欧美韩一区二区三区 | 久久国产精品精品国产色婷婷 | 亚洲精品综合 | 午夜无码国产理论在线 | 欧美一区二区免费视频 | 一区二区三区免费观看 | 久久久蜜桃一区二区人 | 国产毛片久久久久久久久春天 | 超碰成人av | 久久国产亚洲 | 日韩欧美在线观看 | 玖玖爱365 | 精品久久久久久久 | 欧美专区日韩专区 | 午夜免费视频观看 | 欧美日韩国产精品一区 | 久久综合888| 国产精品一区二区在线 | 黄色大片免费网站 |