GVKun编程网logo

android – 如何注册App Invite Dialogue的回调(android hidl c++注册,回调)

6

在这篇文章中,我们将为您详细介绍android–如何注册AppInviteDialogue的回调的内容,并且讨论关于androidhidlc++注册,回调的相关问题。此外,我们还会涉及一些关于andr

在这篇文章中,我们将为您详细介绍android – 如何注册App Invite Dialogue的回调的内容,并且讨论关于android hidl c++注册,回调的相关问题。此外,我们还会涉及一些关于android @android:Theme.Dialog 和 @android:Widget.Button找不到、Android APP开发08(AlertDialog)、Android DevArt2:Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期、Android Dialog-Dialog 无法充满横屏且下方有间隔的知识,以帮助您更全面地了解这个主题。

本文目录一览:

android – 如何注册App Invite Dialogue的回调(android hidl c++注册,回调)

android – 如何注册App Invite Dialogue的回调(android hidl c++注册,回调)

这是我的代码工作正常.我正在接受邀请.
所有代码都在工作.

Q)如何显示回调的日志消息.

问)为什么我无法在logcat中获取日志消息.

if (AppInviteDialog.canShow()) {
        AppInviteContent content = new AppInviteContent.Builder()
                .setApplinkUrl(AppURl)
                .build();

        AppInviteDialog appInviteDialog = new AppInviteDialog(getActivity());
        appInviteDialog.registerCallback(sCallbackManager,new FacebookCallback<AppInviteDialog.Result>() {
                    @Override
                    public void onSuccess(AppInviteDialog.Result result) {
                        Log.d("Invitation","Invitation Sent Successfully");
                        Toast.makeText(getActivity(),"Invitation Sent Succseesfully",Toast.LENGTH_LONG).show();

                    }

                    @Override
                    public void onCancel() {
                        Log.d("Invitation","Invitation Cancel Successfully");
                    }

                    @Override
                    public void onError(FacebookException e) {
                        Log.d("Invitation","Error Occured");
                    }
                });

        appInviteDialog.show(content);
    }
}

@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    sCallbackManager.onActivityResult(requestCode,data);


}

注意:我还在OnActivitResutl中注册回调.

如果问题错了,请建议一些事情.我是Stackoverflow的新手.

编辑

当我使用相同的代码与Activity时,它可以工作,但当我使用Fragment它不起作用.
为什么有任何解释或代码错误?

解决方法

如果从片段中注册它,请尝试传递“FragmentName.this”而不是“getActivity”.
AppInviteDialog appInviteDialog = new AppInviteDialog(this);

android @android:Theme.Dialog 和 @android:Widget.Button找不到

android @android:Theme.Dialog 和 @android:Widget.Button找不到

android @android :Theme.Dialog 和 @android :Widget.Button找不到是什么回事?

Android APP开发08(AlertDialog)

Android APP开发08(AlertDialog)

AlertDialog

实现方式

AlertDialog.Builder builder =new AlertDialog.Builder(context);构建Dialog的各种参数

方法

方法名解析
Builder.setIcon(int iconId)添加ICON
Builder.setTitle(CharSequence title)添加标题
Builder.setMessage(CharSequence msg)添加消息
Builder.setView(View view)设置自定义布局
Builder.create()创建Dialog
Builder.show()显示对话框
setPositiveButton确定按钮
setNegativeButton取消按钮
setNeutralButton中间按钮

实例

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical">
    <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="显示对话框"
            android:onClick="showalert"
    />
</LinearLayout>

java

package com.example.myalertdialog;

import android.content.DialogInterface;
import android.util.Log;
import android.view.View;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void showalert(View view){
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher)
            .setTitle("我是对话框")
            .setMessage("CSDN博客:碰磕")
            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Log.e("leo","点击了确定");
                }
            })
            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Log.e("leo","点击了取消");
                }
            })
            .setNeutralButton("中间", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Log.e("leo","点击了中间");
                }
            })
            .create().show();
    }
}

效果

在这里插入图片描述

通过点击不同的选择,会做出相对于的操作

在这里插入图片描述

还可以自定义布局
只需要创建一个xml
dialog_view.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffff00"
        android:orientation="horizontal">
    <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content"
               android:src="@mipmap/ic_launcher"
    />
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
              android:text="碰磕"
    />
</LinearLayout>

在java中加入

View dialogview=getLayoutInflater().inflate(R.layout.dialog_view,null);
builder.setView(dialogview)

最终效果:

在这里插入图片描述

dialog弹窗测试就完成了…

Android DevArt2:Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期

Android DevArt2:Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期

先给出结论:Dialog和AlertDialog并不会影响到Activity的生命周期,但会影响到Activity的优先级。

核心代码:

onCreated中:
        Resources resources = this.getResources();
        DisplayMetrics displayMetrics = resources.getDisplayMetrics();
        final int widthPixels = displayMetrics.widthPixels / 2;
        final int heightPixels = displayMetrics.heightPixels / 2;
        //1
        //Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
//                        .setAction("Action", null).show();
                //test Dialog
//                EditText editText = new EditText(ScrollingActivity.this);
//                editText.setLayoutParams(new ViewGroup.LayoutParams(widthPixels, heightPixels));
//                Dialog dialog = new Dialog(ScrollingActivity.this);
//                dialog.setContentView(editText);
//                dialog.setTitle("标题");
//                dialog.setCanceledOnTouchOutside(false);
//                dialog.show();
                //test Dialog
                AlertDialog.Builder builder = new AlertDialog.Builder(ScrollingActivity.this);
                builder.setTitle("弹窗")
                        .setMessage("Msg")
                        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        }).setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        ;
                    }
                }).setCancelable(false);
                builder.create().show();
            }
        });

In Activity:
 @Override
    protected void onStart() {
        super.onStart();
        System.out.println("ScrollingActivity.onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        System.out.println("ScrollingActivity.onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        System.out.println("ScrollingActivity.onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        System.out.println("ScrollingActivity.onStop");
    }

有兴趣的同志可以新建个Activity体验一下。

Android Dialog-Dialog 无法充满横屏且下方有间隔

Android Dialog-Dialog 无法充满横屏且下方有间隔

自定义一个 Dialog, 写完布局后运行,发现 Dialog 无法充满屏幕,就像下边这样:

代码大致如下:

Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_layout);
Window dialogWindow = dialog.getWindow();
dialogWindow.setGravity(Gravity.BOTTOM);
dialogWindow.getDecorView().setPadding(0, 0, 0, 0);
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.width = WindowManager.LayoutParams.FILL_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialogWindow.setAttributes(lp);
dialog.show();

分析

这个问题其实是因为背景的.9 图四周 边距太宽的原因,和宽度设置无关,事实上是填满了的,只是四周是透明的而已。

打开源码中父类 Dialog 的 style 和 theme, 发现 background 属性:

切换到图片所在目录:

发现它是一张.9 图片

解决方法 1:

自定义 style, 继承 Theme.Dialog, 重写背景属性

<style name="dialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/white</item>
        <item name="android:backgroundDimEnabled">true</item>
</style>

然后代码引用该 style:

Dialog dialog = new Dialog(this,R.style.dialog);

解决方法 2:

 在自定义 dialog 中手动用代码设置

dialogWindow.setBackgroundDrawableResource(android.R.color.white);

 

我们今天的关于android – 如何注册App Invite Dialogue的回调android hidl c++注册,回调的分享就到这里,谢谢您的阅读,如果想了解更多关于android @android:Theme.Dialog 和 @android:Widget.Button找不到、Android APP开发08(AlertDialog)、Android DevArt2:Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期、Android Dialog-Dialog 无法充满横屏且下方有间隔的相关信息,可以在本站进行搜索。

本文标签: