我有以下意图:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/*");
startActivityForResult(intent, DBOpenHelper.REQUEST_CODE_RESTORE);
Run Code Online (Sandbox Code Playgroud)
意图允许用户从许多选项中选择文本文件.例如,它适用于本地存储和Dropbox,在这两种情况下我都可以从以下方式获取文件:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if ((requestCode == DBOpenHelper.REQUEST_CODE_RESTORE)
&& (resultCode == Activity.RESULT_OK)) {
restoreFile = new File(data.getData().getPath());
restoreFileName = restoreFile.getName();
}
}
Run Code Online (Sandbox Code Playgroud)
本地存储工作正常,Dropbox会将文件的本地副本复制到SD卡并返回正确的路径.问题是,如果用户从Google云端硬盘中选择文件.当他们使用Google Drive时,data.getData().getPath()会返回类似:"/ document/acc = 1; doc = 195"的内容,而不是返回本地存储文件的路径.如何让Google云端硬盘下载文件并返回路径?我想允许用户从他们可用的任何文件存储选项中进行选择.
我有一个似乎是一个简单的问题,但对于我的生活无法弄清楚这一点......
我有一个主要的活动,显示公司徽标,基本上是一个闪屏.我想让它显示2秒左右,然后淡出到实际的应用程序主要活动.我试图使用sleep实现,但这样做会给我一个空白的屏幕标识活动.似乎在睡眠完成之后图像才会被加载.基本上应用程序启动,显示黑屏2秒,然后转换到我的应用程序.如果我点击后面,我会看到徽标.我在这做错了什么?这是我的徽标代码.logo.xml有一个带有可绘制资源的ImageView:
public class Logo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.logo);
// Intent to jump to the next activity
Intent intent= new Intent(this, NextActivity.class);
this.startActivity(intent);
SystemClock.sleep(2000);
}
}
Run Code Online (Sandbox Code Playgroud) 我有两个表,具有以下设置:
category: (id, name)
item: (id, name, category_id) - category_id is foreign key to category table
Run Code Online (Sandbox Code Playgroud)
现在我正在编写一个查询来检索仅使用类别的类别表中的子集:
SELECT c.id, c.name
FROM category c
WHERE c.id IN (SELECT DISTINCT category_id FROM item)
Run Code Online (Sandbox Code Playgroud)
以上查询工作正常.我只是想知道这是否是进行查询的最佳方式,或者是否还有其他我可以通过连接或其他方式做的事情