我在stackoverflow中看到了类似的问题,但他们没有给出我的问题的明确答案.在阅读完整的问题之前,请勿将其标记为重复.我看到了这个链接,这也是这个.感谢您花时间阅读本文.
我在源代码下面给出了三个问题,请仔细看看.
我会简单的.我试图在Recycler Adapter中使用两个 ViewHolder,我将在ViewPager中使用TabLayout.两个View Holder都有不同的 Xml和不同的元素(即textview,imageview等......)但是它内部有几个混乱.
我实现了我的RecyclerView适配器类,如下所示
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public class MainViewHolder extends RecyclerView.ViewHolder {
public MainViewHolder(View v) {
super(v);
}
class ViewHolder0 extends MainViewHolder {
...
}
class ViewHolder2 extends MainViewHolder {
...
}
@Override
public int getItemViewType(int position) {
/**** I don't know where and when this method will be called and what will be the value present in the variable …Run Code Online (Sandbox Code Playgroud) 我正在使用 NextJS 开发一个类似电子商务的网站。
我将在页面中获取并显示产品列表/products。单击任何产品后,我将导航到/details/[productId],然后按如下方式获取这些产品详细信息。
// In /details/[productId].js file
export async function getServerSideProps({params}) {
const res = await fetch(`https:my-api-url/api/products/${params.productId}`)
const product = await res.json()
return {
props: {
product
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题
直到这一步一切看起来都很好。但我想减少数据库读取次数,因此detail我计划使用在上一页 ( /products) 中获取的数据,其中包含有关产品的信息,而不是在页面中再次获取产品详细信息。因此,我需要一种方法将这些产品对象传递到下一个屏幕/details/[productId]的 getServerSideProps (以实现用于 SEO 目的的 SSR)。
解决方法
我目前拥有的一种解决方案是stringify产品 json 并通过查询参数传递它,然后将其返回到getServerSideProps({params, query}). 但它只是在浏览器中向我的网址发送垃圾邮件,这看起来一点也不好看。
期待
是否有其他方法将数据传递到getServerSideProps函数中,以便它将利用数据在服务器本身中生成整个页面。请指导我克服这个问题。任何帮助,将不胜感激。
提前致谢.. (:
我在 React Native Application 工作。我正在努力在 Android 中使用Notification Services& BIND_NOTIFICATION_LISTENER_SERVICE。我正在尝试使用NotificationListenerService.
我正在使用一加 5T (Android Oreo)进行调试。
我见过很多重复的问题,我尝试了从这些问题中得到的以下解决方案。
1.重启手机(听起来很傻,但不起作用)
2.重新安装/重新构建应用程序
- 重命名 NotificationListenerService 类文件并运行等..
我一直面临的问题,
1.在“通知访问”设置中看不到我的应用程序。
2.onCreate / onNotificationPosted 当我收到任何通知时不会被调用
3.使用下面的代码检查我的应用程序是否具有通知权限,它返回“false”(显然,这是我的问题)
ComponentName cn = new ComponentName(getReactApplicationContext(), NotificationListener.class);
String flat = Settings.Secure.getString(getReactApplicationContext()
.getContentResolver(), "enabled_notification_listeners");
final boolean hasPermission = flat != null && flat.contains(cn.flattenToString());
// hasPermission - false
Run Code Online (Sandbox Code Playgroud)
由于BIND_NOTIFICATION_LISTENER_SERVICE未列出Dangerous permissions列表,我认为在 Manifest 中定义它(下面给出了源供您参考)就足够了,而不是询问运行时许可。
我遵循了本教程并参考了其他教程。我不知道我哪里做错了。一切看起来都很完美。思索了一整天之后,我想我会请求你的帮助。
在下面找到我的源代码。
我的来源
AndroidManifest.xml
<service
android:name=".NotificationListener"
android:label="@string/app_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter> …Run Code Online (Sandbox Code Playgroud) 我正在创建安卓键盘看到这个教程.我在这里和其他网站上看到了类似的问题,但我没有得到解决方案.
我正在尝试将KeyboardView实现到我的xml中.但它显示了一些渲染问题和例外 这里是我的Android Studio的快照
我是否需要实现任何库或某些gradle 依赖项?
例外细节
java.lang.UnsupportedOperationException: Unsupported Service: audio
at com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:463)
at android.inputmethodservice.KeyboardView.<init>(KeyboardView.java:379)
at android.inputmethodservice.KeyboardView.<init>(KeyboardView.java:283)
at android.inputmethodservice.KeyboardView.<init>(KeyboardView.java:279)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:437)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:154)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:93)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:190)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132)
at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:400)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:332)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:511)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:499)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:499)
at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:611)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:608)
at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:363)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用 Angular 10。我有一个场景来获取 html 字符串(富文本编辑器返回的值)并将其显示在我的应用程序中(使用innerHtml)。我将获得各种样式,例如背景颜色、字体颜色、突出显示文本、超链接等。
我正在bypassSecurityTrustHtml通过管道使用(代码如下),以便<styles>考虑标签。
// sanitizeHtml.pipe.ts
@Pipe({ name: 'keepHtml', pure: false })
export class SanitizeHtmlPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {
}
transform(content) {
return this.sanitizer.bypassSecurityTrustHtml(content);
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我获得超链接文本时<a href="http://www.someurl.com> click here </a>,这些锚链接不起作用。因此,当我单击该链接时,它不会打开href链接。
我见过像使用bypassSecurityTrustResourceUrl. 但我不能使用它,因为我无法单独从 html 内容中解析 url。
我还尝试使用其他 SO 问题中建议的如下功能,但它也没有帮助..
[innerHtml]="myHtmlContent | keepHtml | keepUrl"
[innerHtml]="myHtmlContent | keepUrl | keepHtml" // tried to reorder the pipe still didn't work
有没有办法在使用bypassSecurityTrustHtml 函数时使锚标记的href 链接正常工作?
谢谢你的时间。
我看到很多这些问题的遗嘱(这里,这里,这里和这里),但我没有得到解决我的问题.
这是我的应用程序的想法
从URL中获取内容并在每次单击按钮时使用textview显示它.
(URL内容将为每次刷新随机生成不同的文本)
这是我的应用程序的旧代码完美地工作但StackOverflow人员建议我使用AsyncTask
我在doInBackground()方法中指定了获取URL内容操作,并在onCreate的 Button Click Event中调用了new myAsyncTask.execute().
它只适用于第一次点击,然后我的应用程序崩溃了.它说AsyncTask应该只调用一次.但我希望我的TextView在每个按钮点击事件上更新.
那么,我现在应该怎么做
我是否要取消之前的AsyncTask并调用新的(或)我想为AsyncTask初始化新对象并再次调用它(这是最糟糕的方法)
如何使用AsyncTask或任何Alternate在我的应用程序中实现我的想法?
这是我的代码:
public class MainActivity extends AppCompatActivity {
TextView resultView;String TAG="MainActivity kbt";
SmoothProgressBar mProgressBar;
Context context;
MyAsyncTask myAsyncTask;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// StrictMode.enableDefaults(); //Used to executes URL connection on MainThread without getting Exception
setContentView(R.layout.activity_main); …Run Code Online (Sandbox Code Playgroud)