小编DeG*_*seZ的帖子

动态cardviews与firebase结合使用

我有一份清单CardViews.每个CardView(代表挑战)都有一个ViewPager显示"解决方案"的垂直可扫描列表.

"解决方案列表"中的数据和图像来自Firebase数据库. 我遇到的问题是您打开的第一个CardView(当您单击它时,它会展开并显示解决方案)会正确显示所有解决方案.当你点击第二个时,它会扩展但没有显示数据,我认为它是这样的,因为我必须使用"最终"布局(final FrameLayout v0 = (FrameLayout) inflater.inflate(R.layout.solutions, null);)

在此输入图像描述

以下是自定义RecyclerView适配器的重要部分的片段.

public class ChallengesAdapter extends 
RecyclerView.Adapter<ChallengesAdapter.RecyclerItemViewHolder> {
private ArrayList<ChallengesData> myChallengesList;
int mLastPosition = 0;

//Firebase
String mUID = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference challengeSolutionsRef = rootRef.child("challenges");

FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReferenceFromUrl("firebase-url");

public ChallengesAdapter(ArrayList<ChallengesData> myChallengesList) {
    this.myChallengesList = myChallengesList;
}
public RecyclerItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.challenges_row, parent, false); …
Run Code Online (Sandbox Code Playgroud)

android firebase android-cardview firebase-realtime-database firebase-storage

8
推荐指数
1
解决办法
622
查看次数

在运行时编译渲染脚本代码

我想知道是否可以在 android 应用程序运行时编写/修改渲染脚本代码。我的主要目标是制作一个应用程序,用户可以在没有任何 Java 知识的情况下学习使用 renderscript。应用程序的基本布局将由输入和输出图像组成,并可以输入代码。此应用程序的基本功能已经在运行,这是界面图像。 应用布局

使用来自应用程序的直接反馈来测试渲染脚本代码会很有用。

我已经对构建过程进行了研究,并提出了以下想法:

一个基本的“模板”渲染脚本文件,具有必要的全局变量,如输入和输出分配。

我的 java 代码将创建一个生成的 java 类的脚本对象,并对这些全局脚本变量进行基本的初始化。这个模板 .rs 文件的根函数应该是空的,应该可以由用户在运行时实现。

当用户在应用程序的主视图中输入他的代码时,代码被写入我自己的 .rs 文件,然后由应用程序调用的 llvm-rs-cc 编译器编译。然后将生成的 .bc 复制到模板的原始 .bc 文件所在的位置。因为代码的唯一更改发生在 root 函数内部,所以没有必要对周围的 java 代码进行更改。

我目前遇到的问题是 .bc 文件捆绑在 res/raw 文件夹内的最终 apk 中,该应用程序无法访问。因此,不可能用新生成的文件覆盖旧的 .bc 文件。

有没有(另一种)方法可以在运行时编译渲染脚本代码?

编辑:可以在此github链接中找到解决方案。有关更多详细信息,请查看答案,阅读最后一条评论

java android renderscript

6
推荐指数
1
解决办法
1128
查看次数