我正在尝试创建一个Android项目,在该项目中,我可以通过使用户在浏览器中登录Amazon Cognito来授权用户,然后该用户应重定向回我的应用程序。不幸的是,当浏览器打开时,没有到达正确的登录页面,而是不断出现此错误:
在我的AuthenticatorActivity.java中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_authenticator);
Uri authzUrl = Uri.parse("https://<myDomain>.auth.us-west-2.amazoncognito.com/login?response_type=token&client_id=<myClientId>&redirect_uri=myapp://mainAct");
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, authzUrl);
startActivity(launchBrowser);
}
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest中:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="mainAct" android:scheme="myapp"></data>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我在做什么错。我错过了一步吗?
请注意,我在这里不是在谈论嵌套导航图。我特别谈论使用NavHostFragments作为 other 的子部分NavHostFragments并使用 NavigationComponent 在子片段和父片段之间来回转换。话虽如此...
我们如何在其他 NavHostFragments 中正确使用带有 NavHostFragments 的导航组件?
例如:假设我有MainActivity以下布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/Toolbar"/>
</android.support.design.widget.AppBarLayout>
<fragment
android:id="@+id/navHost"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Main Activity 有一个NavHostFragmentidnavHost使用导航图nav_graph,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<navigation
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/fragmentA">
<fragment
android:id="@+id/fragmentA"
android:name="com.example.nestednavfragmentstest.FragmentA"
android:label="FragmentA"
tools:layout="@layout/fragment_a">
<action android:id="@+id/action_fragmentA_to_fragmentB" app:destination="@id/fragmentB"/>
</fragment>
<fragment
android:id="@+id/fragmentB"
android:name="com.example.nestednavfragmentstest.FragmentB"
android:label="FragmentB"
tools:layout="@layout/fragment_b"/>
</navigation>
Run Code Online (Sandbox Code Playgroud)
本质上, …
我正在尝试使用MoveFile(LPCWSTR existing,LPCWSTR new)函数.我希望能够通过连接不同的数据(例如:根目录和潜在的文件名)来实现其中一个目录(由LPCWSTR表示).尽管经过了数小时的研究,我还是想不出怎么做.感谢任何帮助.
如何在Mockk中模拟Build.VERSION.SDK_INT?
我已经完成以下工作:
@Test
fun testFoo(){
mockkStatic(Build::class)
mockkStatic(Build.VERSION::class)
every {
Build.VERSION.SDK_INT
} answers { 22 }
}
Run Code Online (Sandbox Code Playgroud)
io.mockk.MockKException: Missing calls inside every { ... } block.一旦代码碰到every块,我最终就得到了。
我目前正在制作一个Corona应用,我想在其中添加日语文本。对于不认识的人来说,日语似乎有多种语言可以写文字(汉字,平假名等)。Furigana是一种在平假名中包含汉字字符和平假名的方法(或Ruby字符)。有关示例,请参见本页上的Ruby幻灯片。
我正在寻找在我的应用程序中使用Furigana的方法。我希望有一种使用Unicode的方法。好吧,我偶然发现了Interlinear注释字符,并在Corona中对其进行了测试(使用unicodeToUtf8和LastResort字体),如下所示:
local iaAnchor = unicodeToUtf8(0xfff9)
local iaSep = unicodeToUtf8(0xfffa)
local iaTerm = unicodeToUtf8(0xfffb)
local options = {
parent = localGroup,
text = iaAnchor .. "?" .. iaSep .. "??" .. iaTerm .. iaAnchor .."?" .. iaSep .. "?" .. iaTerm,
x = 285,
y = 195,
font = "LastResort",
fontSize = 24,
}
local testText = display.newText(options)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有成功,最终得到了这样的东西:

该文档讨论了如何发送简单的整数和字符串。例如:
<argument
android:name="myIntArg"
android:defaultValue="255"
app:argType="integer" />
Run Code Online (Sandbox Code Playgroud)
在原始片段中:
val action = OriginFragmentDirections.myAction(myInt)
findNavController().navigate(action)
Run Code Online (Sandbox Code Playgroud)
在目标片段中:
val receivedInt = DestinationFragmentArgs.fromBundle(arguments).myIntArg
Run Code Online (Sandbox Code Playgroud)
但是要说而不是myIntArg,我想发送一个整数列表(myIntListArg)。我该怎么做?我app:argType会在论点中使用什么?
使用 Jetpack Compose 和伴奏寻呼机,我尝试创建一个HorizontalPager位置:
Pager项目有最大宽度作为一个例子,我编写了以下代码(为了简单起见,我制作了Text物品,但实际上,我实际上制作了更复杂的Card物品):
@Composable
fun MyText(modifier: Modifier) {
Text(
text = LOREM_IPSUM_TEXT,
modifier = modifier
.wrapContentHeight()
.border(BorderStroke(1.dp, Color.Red))
)
}
@ExperimentalPagerApi
@Composable
fun MyPager(pagerItem: @Composable () -> Unit = {}) {
Scaffold {
Column(
modifier = Modifier
.fillMaxSize()
// In case items in the VP are taller than the screen -> scrollable
.verticalScroll(rememberScrollState())
) {
HorizontalPager(
contentPadding = PaddingValues(32.dp),
itemSpacing = 16.dp,
count = 3,
) { …Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-jetpack-compose-list jetpack-compose-accompanist android-jetpack-compose-pager
我有一个myDialogBox有CComboBox成员(myComboBox)的CDialog ().我的目标是CString从下拉样式的编辑部分获取用户输入的文本(最好是a )CComboBox.但是,我似乎无法让它发挥作用.
我试过用了myComboBox.GetWindowText(myString).但每当我在调试模式下运行它时,我的代码在函数ASSERT(::IsWindow(m_hWnd))内部中断CWnd::GetWindowText().
我也试过了myDialogBox.GetDlgItemText(MY_COMBOBOX_ID, myString),它以类似的方式崩溃了.
另外,我试过:
COMBOBOXINFO info;
memset(&info,0,sizeof(info));
myComboBox.GetComboBoxInfo(&info);
LPTSTR str = new TCHAR[::GetWindowTextLength(info.hwndItem)];
::GetWindowText(info.hwndItem,str,::GetWindowTextLength(info.hwndItem));
Run Code Online (Sandbox Code Playgroud)
但是,它似乎没有info正确填充我的变量.
有人能指出我正确的方向吗?我究竟做错了什么?有什么建议?
编辑:以防万一它可能有助于理解我的最终目标,我试图有一个组合框,可以帮助用户图片和从字符串列表中选择.尽管如此,如果他/她不想在下拉列表中找到任何内容,他可以拿出自己的字符串.我想要一种接收用户输入字符串的方法.
该文档讨论了如何发送简单的整数和字符串。例如:
<argument
android:name="myIntArg"
android:defaultValue="255"
app:argType="integer" />
Run Code Online (Sandbox Code Playgroud)
在原始片段中:
val action = OriginFragmentDirections.myAction(myInt)
findNavController().navigate(action)
Run Code Online (Sandbox Code Playgroud)
在目标片段中:
val receivedInt = DestinationFragmentArgs.fromBundle(arguments).myIntArg
Run Code Online (Sandbox Code Playgroud)
但是说而不是myIntArg,我想发送一个枚举(myEnumArg)。我该怎么做?我app:argType会在论点中使用什么?
背景:
有些人遇到这样的问题:当他们的模拟器不使用 ABI x86_64 时,他们的 UI 测试会失败。如果我错了,请纠正我,但这似乎是通过 Firebase 测试实验室(通过gcloud firebase test android run)运行自动化测试时的问题,因为他们的模拟器似乎没有使用 ABI x86_64。
使用时gcloud firebase test android run,是否可以设置所使用的模拟器的ABI?
android firebase gcloud google-cloud-test-lab firebase-test-lab
我在使用PathCombine函数时遇到了一些困难.它似乎与SHFileOperation()无法正常工作.我的代码如下:
//beginning of method
TCHAR* root = new TCHAR[MAX_PATH];
root = L"C:\\Users\\jhow\\Desktop\\\0";
//later on in the method
TCHAR* t1Dir = new TCHAR[MAX_PATH]; //root
TCHAR* t2Dir = new TCHAR[MAX_PATH]; //temp
PathCombine(t1Dir,root,L"Folder1\\%REPLACE_THIS%\\\0");
PathCombine(t2Dir,root,L"Folder1\\temp\0");
sf.pFrom = t1Dir;
//sf.pFrom = L"C:\\Users\\jhow\\Desktop\\Folder1\\%REPLACE_THIS%";
sf.pTo = temporaryDir;
//Copy files
int n = SHFileOperation(&sf);
Run Code Online (Sandbox Code Playgroud)
当我拥有它就像上面一样,该方法看到sf.pTo,但由于某种原因它没有看到sf.pFrom(即使在路径名末尾使用\和\ 0的不同组合).n变为2,我认为意味着文件未找到...但是例如,当我评论出来时.
sf.pFrom = t1Dir;
Run Code Online (Sandbox Code Playgroud)
并替换为:
sf.pFrom = L"C:\\Users\\jhow\\Desktop\\Folder1\\%REPLACE_THIS%";
Run Code Online (Sandbox Code Playgroud)
SHFileOperation()有效...它返回零,我可以看到所有文件都被复制到目录中.我发现这看起来很奇怪,因为它们似乎是完全相同的字符串(即使我调试并将鼠标悬停在变量上)......任何人都知道为什么会发生这种情况?我的语法或逻辑有问题吗?因为我没有看到它.我正在使用Visual Studio 2008.非常感谢您的时间.
android ×7
android-architecture-navigation ×3
c++ ×3
winapi ×2
windows ×2
android-jetpack-compose-list ×1
android-jetpack-compose-pager ×1
ccombobox ×1
coronasdk ×1
firebase ×1
gcloud ×1
httprequest ×1
java ×1
jetpack-compose-accompanist ×1
kotlin ×1
lua ×1
mfc ×1
mockk ×1
oauth ×1
path-combine ×1
redirect ×1
testing ×1
unicode ×1
visual-c++ ×1