在这篇文章中,我们将为您详细介绍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 @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++注册,回调)
所有代码都在工作.
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它不起作用.
为什么有任何解释或代码错误?
解决方法
AppInviteDialog appInviteDialog = new AppInviteDialog(this);
android @android:Theme.Dialog 和 @android:Widget.Button找不到
android @android :Theme.Dialog 和 @android :Widget.Button找不到是什么回事?
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)
最终效果:
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 无法充满横屏且下方有间隔
自定义一个 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 无法充满横屏且下方有间隔的相关信息,可以在本站进行搜索。
本文标签: