Android 安卓-语音搜索应用?

Android 安卓-语音搜索应用?,android,google-glass,google-gdk,Android,Google Glass,Google Gdk,我正在尝试用GDK创建一个简单的Google Glass应用程序。我有 通过语音命令启动的活动。在那之后,你有机会谈论你所寻找的,比如说你在寻找“足球” 这项活动(或指南告诉我的在谷歌眼镜上调用的沉浸)所做的是在返回JSON数据的API中进行搜索。然后我想解析这些数据,并将结果以一组静态卡片的形式呈现给用户,您可以滚动浏览这些卡片 所有这些都是可行的,但我觉得受到GDK的限制,对于静态卡,除了从一开始就在应用程序中的图像之外,我无法设置其他图像。我希望能够有自定义布局的静态卡。我现在这样做可能吗

我正在尝试用GDK创建一个简单的Google Glass应用程序。我有 通过语音命令启动的活动。在那之后,你有机会谈论你所寻找的,比如说你在寻找“足球”

这项活动(或指南告诉我的在谷歌眼镜上调用的沉浸)所做的是在返回JSON数据的API中进行搜索。然后我想解析这些数据,并将结果以一组静态卡片的形式呈现给用户,您可以滚动浏览这些卡片

所有这些都是可行的,但我觉得受到GDK的限制,对于静态卡,除了从一开始就在应用程序中的图像之外,我无法设置其他图像。我希望能够有自定义布局的静态卡。我现在这样做可能吗

这里的人告诉我这是可以做到的,但我真的不知道如何做到。因为我在Google Glass页面上遇到的只是一些文档,上面说这是做不到的

我还希望能够将这些静态卡片捆绑在一起,并将它们固定到时间轴上,这样您就不需要搜索同一事物两次

有没有人能帮我弄清楚我是否走上了正确的道路,或者这在GDK现在是不可能的

非常感谢
Joakim

使用
CardScrollView
并在
getView
函数中创建自己的
CardScrollAdapter
,从xml文件中展开布局并填充所有信息,就像在android应用程序中一样

阅读评论后编辑: 在
适配器
类中添加

public static class ViewHolder{
    public TextView text;
    public ImageView image;
}
改变

public View getView(int position, View convertView, ViewGroup parent) {
     return mCards.get(position).toView();
}
进入

因此,你所要做的就是:

  • 检查
    适配器中是否实现了
    getItem

  • 对映像使用lazyloading(如果是远程映像,则看起来是)

  • /layout
    文件夹中创建
    mycardlayout.xml
    文件,该文件必须包含id为
    text
    TextField
    和id为
    image
    ImageView


  • 我有一个CardScrollAdapter和一个getView函数。它现在所做的只是:public View getView(int位置,View convertView,ViewGroup父项){return mCards.get(position.toView();}遗憾的是,我在做Android应用程序方面是一个真正的n00b。你有什么例子吗?我还想我需要一些CustomCard类来扩展Cards来设置我想添加到布局中的数据,对吗?谢谢!这真是太棒了!现在我只想把这些卡片打包,放在时间线上。这有可能吗?我看到你几乎所有的问题都是关于同一个应用程序的,你不能希望StackOverflow会帮你解决所有问题并给你所有的代码,因为你“在做Android应用程序方面是一个真正的n00b”,Google Glass是Android,所以试着学习和理解Android。这是比初学者更好的唯一方法,在这里粘贴副本并询问所有问题,你将一事无成。对不起,当然可以,但是当你陷入一个问题,没有意识到可能是什么问题时,你会问问题。所有其他我自己管理的东西。当我不明白的时候,我又不是在这里跳。在我问之前我已经试过了。所以,不要难过,只要有所帮助,世界就会变得更好。在任何事情上都做到最好,而不是分享,这一定很棒。。。对我来说幸运的是,有些人这样做了,也许我的问题也能帮助其他人。
    public View getView(int position, View convertView, ViewGroup parent) {
         ViewHolder holder;
         if(convertView==null) {
             convertView = inflater.inflate(R.layout.mycardlayout, null);
             holder = new ViewHolder();
             holder.text = (TextView) vi.findViewById(R.id.text);
             holder.image=(ImageView)vi.findViewById(R.id.image);
             convertView.setTag( holder );
         } else holder = (ViewHolder) convertView.getTag();
    
         myObject = getItem(position); //HERE YOU SHOULD MAKE SURE MYOBJECT IS THE CORRECT OBJECT
    
         holder.text.setText(myObject.getName());
         lazyLoad(holder.image, myObject.getImageUrl()); //USE LAZY LOADING LIBRARY
         return convertView;
    }