我一直在尝试在我的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));
我目前刚进入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
我目前正在开发一个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密钥(它应该保密).
我想知道是否有一种方法可以在每次推送之前修改它,或者每次编译我的应用程序时都可以修改它?
谢谢您的帮助 !
我正在尝试使用a SherlockDialogFragment
来询问用户的一些输入.我的手机上的一切正常(Galaxy Nexus,4.2),但在较小的手机(模拟器2.3.3)上,当键盘出现时,它覆盖了DialogFragment的两个按钮,如下所示:
我的布局在ScrollView中,我正在将softInputMode更改为SOFT_INPUT_ADJUST_RESIZE
my 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
我想添加一个线性布局,具有透明背景和白色边框.问题是:就我用谷歌搜索而言,我只能实现两者中的一个.
这是我做的:
在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)我现有的页面布局
<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)当边界被包括在内时,我得到了不透明的背景.
我希望最终结果如下:
完全坚持下去.只想找到实现它的出路.任何建议都会很有帮助.
我正在开展一个项目,当用户第一次打开应用程序时,需要通过简单的教程查看.我正试图以"正确的方式"做到这一点,我对性能问题感到疑惑.
目前,我在我的布局中有一个视图设置为android:visibility="GONE"
,我VISIBLE
根据SharedPreference 更改为.这允许我让用户了解应用程序在首次启动时的工作方式.
我想知道的是当我的片段中呈现视图时它意味着什么.我的猜测是,即使将其可见性设置为,该视图也将无用地膨胀GONE
.
现在,我正在考虑另一种选择:如果我只在第一次启动时添加我的视图,但在编程方面,在我的片段中添加我的视图onCreateView
.这应该允许视图在以后的启动时不被夸大,但不会以编程方式膨胀视图意味着首次启动时性能不佳?
我试图将一项活动作为主题AlertDialog
.我面临的问题是我无法找到一种方法将两个按钮放在我的窗口底部,看起来像是正面和负面的按钮.AlertDialog
我已经将该行添加到清单中的Activity(我正在使用Sherlock Library):
android:theme="@style/Theme.Sherlock.Dialog"
Run Code Online (Sandbox Code Playgroud)
活动看起来就像一个Dialog,但我找不到按钮设置的主题.我能做什么?
所以,我正在研究一种条形码解码器,一旦我们将条形码转换为互联网上的倍数API,就可以解码刚刚扫描过的内容.问题是我必须将一些XML解析链接在一起,我不知道我是否做得对.
因此,一旦条形码被扫描,我的程序就会调用一个ASyncTask,它通过一个API来检索产品名称.一旦有了名称,我希望它能够调用另一个ASyncTask.我知道这可以通过onPostExecute()
在另一个实例化ASyncTaks来实现,但我认为这是错误的,因为它就像盒子里的盒子一样.那么在我的主Activity中实例化我的第二个ASyncTask是不是可能/更好,并让它等到我的第一个ASyncTask完成之后?
(英语不是我的主要语言,我希望我能说清楚).
我正在使用gstreamer检索视频源(从RaspPi发送),我需要将其显示在Google Cardboard中.
我的工作基于gstreamer的tutorial-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) 我想模仿官方Android应用程序的周风格.您知道在这个应用程序中使用哪种视图?他们习惯吗?惩戒
看到这个截图,知道我在说什么:
此屏幕截图是闹钟的警报部分.我想要使用的是红色的部分,它以一种很好的方式显示周长,具有名称的小按钮和根据按钮状态的小蓝/灰条.
好的,所以我正在尝试使用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) 在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
在终端中进行构建.
你知道我能做什么吗?
android ×11
android-view ×3
border ×1
build ×1
eclipse ×1
foreign-keys ×1
git ×1
github ×1
gradle ×1
java ×1
opengl-es ×1
performance ×1
sqlite ×1
tabs ×1
transparency ×1
video ×1