是否有其他人在导入项目时遇到问题ActionBarSherlock
?我总共有100个错误和17个警告.这非常有效Eclipse
.我按照步骤创建了Gradle构建文件.在我尝试构建项目之前没有导入错误.
我也尝试重新下载ABS新鲜并替换到我的项目中.
ABS是否存在已知问题IntelliJ
?(当然Android Studio现在基于哪个)
以下是我看到的一些错误:
java: ...
Workspace/ActionBarSherlock/src/com/actionbarsherlock/app/SherlockFragment.java:4: cannot find symbol
symbol : class Fragment
location: package android.support.v4.app
java: ... Workspace/ActionBarSherlock/src/com/actionbarsherlock/app/SherlockListFragment.java:4: cannot find symbol
symbol : class ListFragment
location: package android.support.v4.app
java: ...
Workspace/ActionBarSherlock/src/com/actionbarsherlock/widget/SuggestionsAdapter.java:33:
package android.support.v4.widget does not exist
Run Code Online (Sandbox Code Playgroud)
任何帮助真的很感激
编辑:似乎使用标准IntelliJ IDEA没有问题.许多在线指南用于设置ABS.正如杰克所说,他实际上是在开发IntelliJ中的东西
以下是一个示例指南:http: //android-wtf.com/2012/09/how-to-configure-actionbarsherlock-with-intellij-idea/
但是,我仍然不确定为什么它不适用于Android Studio
Edit2:下面的答案中的解决方案.简而言之:(我下载了abs
最新版本,解压缩,abs
从我的项目中删除旧版本,然后file > import module...
将actionbarsherlock
目录导入我现有的项目.Nb,在我的特殊情况下我遇到了junit编译错误的问题,需要删除\ test\junit \)
当用户点击,日/周/月按钮时,我需要运行一些javascript代码来重新加载日历.有没有像dayButtonClicked()之类的回调?
发生BUG:
当我第一次加载日历.初始视图看起来很好,我最初加载一天.只要我加载另一个视图,如周.每个条目都是重复的,并显示两个数据源.如果我再次点击日和月之间的数据,则数据恢复正常.发生的事情是,在每天点击一次后首次加载新视图时,不会调用removeEventSource.你见过这件事吗?
<script type='text/javascript'>
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var loadUrl = "menu_booking.php?ne=1&calsub=1";
var lastView;
var fullSource = "../fullcalendar/json-events.php?idc=<?= $sClient ?>&v=long";
var liteSource = "../fullcalendar/json-events.php?idc=<?= $sClient ?>";
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
columnFormat: {
month: 'ddd',
week: 'ddd d/M',
day: 'dddd d/M'
},
defaultView: 'agendaDay',
firstDay: 1,
//editable: true,
selectable: true,
allDaySlot: false,
firstHour: 7,
viewDisplay: function(view) {
if …
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取图像的本地路径,以便将其上传到服务器.当使用pre ICS时,它将通过Android设备获得标准路径getRealPathFromURI(theURI)
但是,ICS URI将包含uriString
如下内容:content://com.google.android.gallery3d.provider/picasa/item/12312312312312
.
并运行getRealPathFromURI(theURI)
返回null
我现在需要提取以上内容uriString
并通过API手动下载图像(如果我检测到它是Picasa图库图像)而不是本地存储的图像吗?还是我完全错过了什么?
谢谢你的建议
编辑:
好像我在寻找错误的问题......
在下面的链接中发现了这个问题......这正是我所期望的,我需要做的事情.相当恼人的谷歌/ android没有更优雅地处理这个.
要正确处理从图库中提取图像,您需要处理三种情况:
用户选择了本地图像文件
用户选择了Picasa图像,设备正在运行3.0之前的Android版本
用户选择了Picasa图片,设备正在运行Android 3.0及更高版本
MediaRecorder
几周来我一直试图通过打开和关闭视频旋转来解决这个问题。我无法让该线路setOrientationHint(90)
在运行的实体 Samsung Galaxy S1 上运行Android 2.3.3
( SDK 10
)。这应该可以在上面的任何内容上运行良好SDK 9
。
当我打电话时,setOrientationHint(90)
我得到一个例外:setParameters(video-param-rotation-angle-degrees=90) failed
。详细错误详情如下。
因此,我被迫检查 SDK,并且仅setOrientationHint()
在 SDK>10 时调用。也就是说,这段代码在我测试过的 10 以上的所有其他 SDK 版本上都可以正常工作。我已经在 Samsung Galaxy Nexus 上进行了测试4.2.2
,运行良好。
这是我的代码:(删减以显示调用顺序MediaRecorder
)
mCamera = getCameraInstance();
mCamera.setPreviewDisplay(holder);
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setOrientationHint(90);
// Step 1: Unlock and set camera to MediaRecorder
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
// Step 2: Set sources
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// Step 3: recording setup
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setVideoSize(720,480);
mMediaRecorder.setVideoFrameRate(15);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
// …
Run Code Online (Sandbox Code Playgroud) 是否有一个等价array join()
的Set
类Ruby
?或者最好只是在Set类中修补我自己?
我有一个可以动态创建标签的应用程序.当我创建一个标签时,我会发起一个活动作为意图.像这样:
private void addTab(Context packageContext, Class<?> newClass, TabHost mTabHost, String tabId, String tabLabel){
// newClass is my Activity class that I want to start in the tab
Intent intent = new Intent().setClass(packageContext, newClass);
TabHost.TabSpec spec;
spec = mTabHost.newTabSpec(tabId).setIndicator(tabLabel)
.setContent(intent);
mTabHost.addTab(spec);
mTabHost.setCurrentTabByTag(tabId);
}
Run Code Online (Sandbox Code Playgroud)
很标准.而且效果很好.现在,假设我在我的选项卡中实例化的活动中有一个按钮(或menuitem,无论如何).当用户按下此按钮时,我希望删除和销毁活动及其所在的选项卡.
我似乎无法找到一种简单的方法来做到这一点.我找到了TabHost.clearAllTabs()函数,但这会破坏所有标签和活动,我只想删除一个.
有人建议我保存我打开的所有Tabs的列表,然后调用clearAllTabs(),之后我重新创建除了我不想要的所有其他选项卡.
像这样的东西:
public static ArrayList<TabHost.TabSpec> list = new ArrayList<TabHost.TabSpec>();
Run Code Online (Sandbox Code Playgroud)
我将此行添加到我的addTab()函数中,以便我创建的每个选项卡都记在我的ArrayList中:
list.add(spec);
Run Code Online (Sandbox Code Playgroud)
然后,当我想删除我的标签时,我运行此功能:
public static void removeTab(){
list.remove(list.size()-1); // remove it from memory
mTabHost.clearAllTabs(); // clear all tabs from the tabhost
for(TabHost.TabSpec spec : list) // add …
Run Code Online (Sandbox Code Playgroud) 嗨,我有一个日历,必须为每个视图加载不同的JSON事件源.即,"月"的简短来源(每天最多只有3个单元格),然后是"日"和"周"的更详细的数据来源.
我想我可以在视图加载时捕获并基于哪个视图,调用removeEventSource()
删除先前的事件源然后addEventSource()
添加当前视图的相关数据并刷新.这是做这样事的唯一方法吗?如果是这样的话......我怎么检测到视图已经完成加载所以我可以调用getView()
inturn加载适当的事件源?
我已经看到有loading()
回调,但我不认为这是我需要的,我想知道整个日历何时完成加载不仅仅是当前的数据.
谢谢你的帮助
编辑:我能想到的唯一另一种方法是删除DAY/WEEK/MONTH fullcalendar按钮并替换为我自己的重新加载php屏幕的变量附加说&calLoad=month or &calLoad=day
我可以加载不同的json feed但这显然是一种不太理想的做事方式.
这也是一个设计问题.我不知道设计有很多活动的最佳方法,以及如何在仍然访问应用程序资源的同时将它们分解为包.
我有一个应用程序,允许用户登录和访问选项卡式活动,该活动可以访问许多模块.如果他们单击一个模块,他们将加载该模块,该模块将包含一个选项卡式活动.
目前我在这个应用程序中有3个包:
我想添加一个新包来包含我的所有模块,就像这样
但是,我可以不再使用完整的包名称来访问主要的应用程序资源,例如 setContentView(com.appname.app.R.layout.channel_list);
显然,在任何com.appname.app
活动中,我只是引用布局等资源setContentView(R.layout.channel_list);
.
我原以为子包(子目录)应该可以访问父资源而不必使用com.appname.app.R.layout.channel_list
而不是R.layout.channel_list
.这就是为什么我假设我的设计出了问题
同样的问题是访问字符串,drawable等资源...
我确定这是我非常缺乏的基础.我已经尝试手动导入"父"包,但这也无效.
这是我应该做的事情吗?或者我应该以某种方式在每个模块包中创建资源文件?还是有另一种方式我应该处理我的应用程序的设计/拆分?