小编Mag*_*cky的帖子

SQlite - Android - 外键语法

我一直在尝试在我的Android SQLite数据库中使用外键.我尝试了以下语法,但它给了我一个力量关闭:

private static final String TASK_TABLE_CREATE = "create table "
            + TASK_TABLE + " (" + TASK_ID
            + " integer primary key autoincrement, " + TASK_TITLE
            + " text not null, " + TASK_NOTES + " text not null, "
    + TASK_DATE_TIME + " text not null, FOREIGN KEY ("+TASK_CAT+") REFERENCES "+CAT_TABLE+" ("+CAT_ID+"));";
Run Code Online (Sandbox Code Playgroud)

我有什么想法可能做错了吗?如果您需要查看其他表结构,那么我可以,它只是一个非常简单的结构,第二个带有ID和名称.

编辑:

这是错误:

03-13 13:42:35.389:ERROR/AndroidRuntime(312):引起:android.database.sqlite.SQLiteException:外键定义中的未知列"taskCat":创建表提醒(_id整数主键自动增量,task_title文本没有null,notes text not null,reminder_date_time text not null,FOREIGN KEY(taskCat)REFERENCES category(_id));

sqlite android foreign-keys

51
推荐指数
2
解决办法
10万
查看次数

Google Cloud Endpoints和用户身份验证

我目前刚进入AppEngine世界,并希望使用Cloud Endpoints为我正在开发的移动应用程序创建后端.

我现在的一个问题是关于用户的身份验证.我一直在关注App Engine上的Udacity的MOOC,他们教我们如何使用Google帐户验证用户的API请求.在后端,我们只需要在User我们的方法中添加一个参数,并检查用户是否已登录.据我所知,此用户参数由App Engine根据Authorization我们的请求标题生成.(可能需要一些确认)

现在,有一些我不确定理解的东西,并没有在这个MOOC上得到很好的解释.

现在,我想知道这是否与Google之外的其他OAuth方案兼容?那么,如果我想实现Facebook身份验证,我会简单地传递facebook访问令牌吗?

根据我搜索的内容,在Android上使用Facebook SDK会让我能够生成一个用户访问令牌,用于识别我的用户到Facebook.将它发送到我的后端后,我想检查它与Facebook的有效性,如果它有效,请为我的应用程序创建一个新用户.现在,我还想生成一个新标记,用于标识我的应用程序的用户.我需要做什么?

authentication google-app-engine android facebook-graph-api google-cloud-endpoints

25
推荐指数
1
解决办法
5459
查看次数

编译时编辑AndroidManifest以删除API密钥

我目前正在开发一个Android项目,并学习如何使用git.我因为git问题而被阻止:我在我的android-manifest文件中声明了我的Google Maps api密钥:

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="HEREISMYKEY"/>
Run Code Online (Sandbox Code Playgroud)

现在,我想在github中推送我的代码,但是我无法推送我的AndroidManifest,因为它包含我的api密钥(它应该保密).

我想知道是否有一种方法可以在每次推送之前修改它,或者每次编译我的应用程序时都可以修改它?

谢谢您的帮助 !

eclipse git android github

21
推荐指数
1
解决办法
3871
查看次数

键盘显示时,DialogFragment没有调整大小

我正在尝试使用a SherlockDialogFragment来询问用户的一些输入.我的手机上的一切正常(Galaxy Nexus,4.2),但在较小的手机(模拟器2.3.3)上,当键盘出现时,它覆盖了DialogFragment的两个按钮,如下所示:

键盘覆盖的对话框

我的布局在ScrollView中,我正在将softInputMode更改为SOFT_INPUT_ADJUST_RESIZEmy onViewCreated.我也试过了SOFT_INPUT_ADJUST_PAN,但没用

MyCustomDialog.java

public class AddTaskDialog extends SherlockDialogFragment implements OnDateSetListener{
//...
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    }
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        this.inflater =  getActivity().getLayoutInflater();
        View mainView =inflater.inflate(R.layout.custom_dialog, null);
        builder.setView(mainView);
        this.taskNote = (EditText) mainView.findViewById(R.id.ET_taskNote);
        this.taskText = (EditText) mainView.findViewById(R.id.ET_taskText);
        this.taskValue = (EditText) mainView.findViewById(R.id.ET_taskValue);
        /*
         * Other stuff
         */
        builder.setTitle(getString(R.string.new_task, hType.toString()))
               .setPositiveButton(R.string.dialog_confirm_button, new …
Run Code Online (Sandbox Code Playgroud)

android android-view android-dialogfragment actionbarsherlock

19
推荐指数
7
解决办法
2万
查看次数

白色边框以及"LinearLayout"中的透明度

我想添加一个线性布局,具有透明背景和白色边框.问题是:就我用谷歌搜索而言,我只能实现两者中的一个.

这是我做的:

  1. 在drawable中将以下内容保存为border.xml

      <?xml version="1.0" encoding="utf-8"?>
      <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
      <item> 
           <shape android:shape="rectangle">
           <solid android:color="#FFFFFF" /> 
      </shape>
      </item>   
         <item android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp" >  
         <shape android:shape="rectangle"> 
         </shape>
       </item>    
      </layer-list> 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我现有的页面布局

         <LinearLayout
            android:id="@+id/quiz"
            android:layout_width="150dp"
            android:layout_height="120dp"
            android:background="#66041414"          <-------- replaced it with android:background="@drawable/border"
            android:orientation="vertical"
            android:layout_marginLeft="5dp" >
    
             ......
           </LinearLayout>
    
    Run Code Online (Sandbox Code Playgroud)

当边界被包括在内时,我得到了不透明的背景.

我希望最终结果如下:


参考图片

完全坚持下去.只想找到实现它的出路.任何建议都会很有帮助.

java transparency android border android-drawable

16
推荐指数
1
解决办法
2万
查看次数

Android性能:以编程方式添加视图,将视图设置为GONE/VISIBLE

我正在开展一个项目,当用户第一次打开应用程序时,需要通过简单的教程查看.我正试图以"正确的方式"做到这一点,我对性能问题感到疑惑.

目前,我在我的布局中有一个视图设置为android:visibility="GONE",我VISIBLE根据SharedPreference 更改为.这允许我让用户了解应用程序在首次启动时的工作方式.

我想知道的是当我的片段中呈现视图时它意味着什么.我的猜测是,即使将其可见性设置为,该视图也将无用地膨胀GONE.

现在,我正在考虑另一种选择:如果我只在第一次启动时添加我的视图,但在编程方面,在我的片段中添加我的视图onCreateView.这应该允许视图在以后的启动时不被夸大,但不会以编程方式膨胀视图意味着首次启动时性能不佳?

performance android android-layout android-view

15
推荐指数
2
解决办法
3121
查看次数

对话主题活动:正面和负面按钮

我试图将一项活动作为主题AlertDialog.我面临的问题是我无法找到一种方法将两个按钮放在我的窗口底部,看起来像是正面和负面的按钮.AlertDialog

我已经将该行添加到清单中的Activity(我正在使用Sherlock Library):

android:theme="@style/Theme.Sherlock.Dialog"
Run Code Online (Sandbox Code Playgroud)

活动看起来就像一个Dialog,但我找不到按钮设置的主题.我能做什么?

android android-theme android-dialog

9
推荐指数
1
解决办法
2739
查看次数

AsyncTask中的Android AsyncTask

所以,我正在研究一种条形码解码器,一旦我们将条形码转换为互联网上的倍数API,就可以解码刚刚扫描过的内容.问题是我必须将一些XML解析链接在一起,我不知道我是否做得对.

因此,一旦条形码被扫描,我的程序就会调用一个ASyncTask,它通过一个API来检索产品名称.一旦有了名称,我希望它能够调用另一个ASyncTask.我知道这可以通过onPostExecute()在另一个实例化ASyncTaks来实现,但我认为这是错误的,因为它就像盒子里的盒子一样.那么在我的主Activity中实例化我的第二个ASyncTask是不是可能/更好,并让它等到我的第一个ASyncTask完成之后?

(英语不是我的主要语言,我希望我能说清楚).

android android-asynctask

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

在Google Cardboard SurfaceTexture中显示gstreamer视频源

我正在使用gstreamer检索视频源(从RaspPi发送),我需要将其显示在Google Cardboard中.

我的工作基于gstreamertutorial-3示例.我设法将我的视频显示到SurfaceView中,通过提供我的Surface(从中检索SurfaceView.SurfaceHolder.getSurface(),但我现在需要将其与Google Cardboard连接).

如果我没有弄错,Google Cardboard依赖于某些SurfaceTexture.所以我认为使用Surface(SurfaceTexture)构造函数从SurfaceTexture中简单地获取Surface会很容易.

问题是它根本不起作用.我的Google纸板应用程序Cardboard Pasthrough示例,我还没有触及OpenGL代码,因为我对此一无所知.

在调试时,我发现我正在使用的代码存在(至少)一个问题.看来就行了

GLES20.glActiveTexture(GL_TEXTURE_EXTERNAL_OES);
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture);
Run Code Online (Sandbox Code Playgroud)

由于GL_TEXTURE_EXTERNAL_OES不在glActiveTexture方法的所需范围内(需要GL从0到GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS),因此给我带来了一些麻烦.这是我的日志:

GLConsumer  W  [unnamed-12520-0] bindTextureImage: clearing GL error: 0x500
Adreno-ES20  W  <core_glActiveTexture:348>: GL_INVALID_ENUM
Run Code Online (Sandbox Code Playgroud)

那么现在有什么用呢?

似乎gstreamer接收了视频源,它尝试更新Surface(我得到一些关于onFrameAvailable正在更新的SurfaceTexture的通知,并且只在那里发送错误日志).但是,屏幕保持黑色,好像什么都没有更新.

以下是我的代码中最有趣的部分:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    CardboardView cardboardView = (CardboardView) findViewById(R.id.cardboard_view);
    cardboardView.setRenderer(this);
    setCardboardView(cardboardView);

    // Initialize GStreamer and warn if it fails
    try {
        GStreamer.init(this);
    } catch (Exception e) {
    //Catch e...
    } …
Run Code Online (Sandbox Code Playgroud)

video android opengl-es google-cardboard

6
推荐指数
0
解决办法
1651
查看次数

Android官方闹钟周风格

我想模仿官方Android应用程序的周风格.您知道在这个应用程序中使用哪种视图?他们习惯吗?惩戒

看到这个截图,知道我在说什么:

看到这个截图,知道我在说什么

此屏幕截图是闹钟的警报部分.我想要使​​用的是红色的部分,它以一种很好的方式显示周长,具有名称的小按钮和根据按钮状态的小蓝/灰条.

user-interface android android-layout android-view

5
推荐指数
1
解决办法
2964
查看次数

无法使用Sherlock使用标签

好的,所以我正在尝试使用Sherlock显示多个标签,每个标签用于一个片段.我只有4个类:一个用于我的主要活动,两个用于我的片段,一个用于TabListener.一切都应该没问题(没有Sherlcock我有相同的程序,在4.0设备上工作),所以我无法理解为什么我得到NullPointerException.

这是错误的一部分

05-18 17:46:57.197: E/AndroidRuntime(9312): FATAL EXCEPTION: main
05-18 17:46:57.197: E/AndroidRuntime(9312): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.micky.testing/com.micky.testing.SherlockTestActivity}: java.lang.NullPointerException
...
05-18 17:46:57.197: E/AndroidRuntime(9312): Caused by: java.lang.NullPointerException
05-18 17:46:57.197: E/AndroidRuntime(9312):     at com.micky.testing.MyTabListener.onTabSelected(MyTabListener.java:21)
...
05-18 17:46:57.197: E/AndroidRuntime(9312):     at com.micky.testing.SherlockTestActivity.onCreate(SherlockTestActivity.java:39)
Run Code Online (Sandbox Code Playgroud)

这是我的一个片段:
HomeFragment

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.actionbarsherlock.app.SherlockFragment;

public class HomeFragment extends SherlockFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.homefragment, container, false);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的tabListener:
MyTabListener

public …
Run Code Online (Sandbox Code Playgroud)

tabs android android-fragments actionbarsherlock

3
推荐指数
1
解决办法
3138
查看次数

Android Studio不会构建我的应用程序

在Android Studio的最新更新之后,我没有导入设置(我没有看到弹出窗口要求它).所以,它重置了我的所有设置.(请参阅http://tools.android.com/recent)我认为这不是什么大问题,因为我没有个性化任何东西,并认为一切都会成功.

但不幸的是,它没有.好像它打破了我项目的构建过程.当我尝试从android studio构建时,我收到了这个错误

org.gradle.tooling.UnsupportedVersionException: The specified Gradle installation 'E:\Android Studio\plugins\gradle' is not supported by this tooling API version (1.7, protocol version 4): The specified Gradle installation 'E:\Android Studio\plugins\gradle' is not supported by this tooling API version (1.7, protocol version 4)

我想这是因为我的AndroidStudio设置中的某些内容发生了变化,因为我仍然可以gradlew build在终端中进行构建.

你知道我能做什么吗?

build gradle android-studio

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