小编rya*_*dlf的帖子

覆盖Android后退按钮

关于我为什么尝试这样做的一些信息:我正在使用ActivityGroups从tabHost活动中打开一个活动,并将新活动保留在选项卡下.那部分我有.但是当进入那个新活动时,如果我使用后退按钮,它会让我直接从标签活动开始,所以我必须点击几次才能回到原来的位置.

有没有办法设置后退按钮转到特定活动而不是杀死当前活动窗口?

android back android-activity

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

使用JQuery来监听html正文上的所有点击除了特定的div及其子节点

我正在尝试使用jQuery监听器来监听用户对html主体的点击并执行特定功能,如果已经点击了身体上的任何位置,除了特定div和该div中的子项.

我们的想法是div是一个弹出式元素,而不是必须有一个用户可以点击的关闭按钮,他们应该只能点击除该div之外的页面上的任何地方,它将自动关闭.

我一直在使用这个监听器:

var initialClick = false;
$('body').on('click.addPhoneListeners', function(event) {
    var target = EventUtility.getTarget(event);
    if(initialClick) {
        if(target.parentNode.id != clone.id && target.id != '') {
            finish();
        };
    }
    initialClick = true;
});
Run Code Online (Sandbox Code Playgroud)

它会监听正文上的所有点击,除非点击来自我希望用户能够与之交互的元素,否则它会关闭.不幸的是,这仅适用于只有一级孩子的div.一旦我开始获得多个层次结构,例如:

<div id="addressContainer">
    <div id="address" class="hidden row">
        <div class="row">
            <div id="address.primary" class="hidden">P</div>
            <div id="address.type"></div>
            <div id="address.street"></div>
            <div id="address.editButton" class="hidden"><a id="addressEditButton">Edit</a></div>
            <div id="address.deleteButton" class="hidden"><a id="addressDeleteButton">Delete</a></div>
        </div>
        <div class="row">
            <div id="address.city"></div>
            <div id="address.state"></div>
            <div id="address.zip"></div>
        </div>
        <input type="hidden" id="address.id"></input>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

target.parentNode.id为我提供了对象父元素而不是addressContainer id,因此不起作用.是否在嵌套元素中使用顶级父级?其他元素将使用相同的代码,因此它必须处理两个div只有一个级别和div有多个.

更新:发现一些优秀的解决方案,谢谢你们.但我有另外一个问题.请参阅上面的代码,我将initialClick布尔值设置为false,然后将其设置为true.我这样做是因为出于某些原因,如果我不这样做,当我去添加弹出div时,用于设置弹出窗口的按钮的初始点击会触发监听器并在我有机会做任何事情之前关闭弹出窗口.这是我解决问题的方法,但这是唯一的方法吗?或者我只是设置听众略有错误?

html javascript jquery

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

Android:关闭SQLite数据库

对于关闭与sqlite数据库的连接,这更像是"我这样做是最好的方式"这样的问题.我一直在做的是在onpause和ondestroy方法中关闭我的视图活动中的数据库.当用户导航回活动时,我在onresume方法上重新查询数据库.这是一段代码:

private void setupView() {

    newRecipeButton = (Button)findViewById(R.id.NewRecipeButton);
    newRecipeButton.setOnClickListener(addNewRecipe);

    list = (ListView)findViewById(R.id.RecipeList);
    dbHelper = new DataBaseHelper(this);
    setupDataBase();
    database = dbHelper.getMyDataBase();
    queryDataBase();
    list.setEmptyView(findViewById(R.id.EmptyList));
    registerForContextMenu(list);
}

private void queryDataBase() {
    data = database.query("recipes", fields, null, null, null, null, null);
    dataSource = new DataBaseAdapter(this, R.layout.recipe_list_item, data, fields, new int[] {R.id.RecipeName, R.id.RecipeStyle});
    list.setAdapter(dataSource);
}

private void setupDataBase() {
    //Create the database if this is the first run.
    try{
        dbHelper.createDataBase();
    } catch(IOException e){
        throw new Error("Unable to Create Database");
    }

    //Otherwise open the database.
    try{ …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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

带注释的依赖注入

我想基于Java注释构建我自己的自定义DI框架,我需要一些方向来开始.我知道使用诸如guice或spring之类的许多精彩框架之一会更容易,但为了我自己的好奇心,我想建立自己的框架.

我对注释不太熟悉,所以我在查找资源方面遇到了一些麻烦,并且非常感谢有人说出我需要采取的一些步骤才能开始.

正如前面提到的,我还想采取工厂方法,并以某种方式标注我的干将与@Resource或@Injectable类型的注释,然后在我的业务类可以设置我的变量相关关系与@Inject注释和有资源可用的自动.

有没有人可以传递任何类型的资源来帮助我理解基于注释标记方法的过程,然后根据注释从单独的类中检索值.我需要一点方向,让我开始.当然,一旦我开始,我会很高兴在这里发布一些代码示例,以便其他人今后阅读.

编辑

我用来将这些资源放在一起的资源:

Java反射:注释

如何在给定的包中找到注释:Stack Overflow?

在运行时扫描注释

我还没有写完这篇文章,但基本的任务列表将如下(对于任何可能有兴趣在将来做类似事情的人)

  1. 在类运行时扫描所有@Inject字段并获取对象类型.

  2. 扫描所有类(或只是一个特定的类包(我还没有决定))注释方法@InjectableResource.

  3. 循环所有带注释的方法,找到返回我正在寻找的对象类型的方法.

  4. 运行该方法并获取依赖项.

另外请注意,在扫描所有类时,我将使用名为Javassist的库.基本上它的作用是允许我读取每个类的字节码信息而不实际加载类.所以我可以读取注释字符串而不会产生严重的内存问题.

java annotations dependency-injection

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

使用jQuery在Page中获取所有DIV(或任何元素)

是否可以使用包含嵌套div的jQuery在页面中获取所有div?

$('div'); //returns outer but not inner

<div id="outer">
    <div id="inner"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

jquery

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

停止从缓存加载Javascript和HTML

我正在构建单页javascript应用程序,当应用程序启动时,我使用单个javascript文件来加载我需要的所有其他文件.当我点击刷新时,根据firebug,我的HTML页面以及javascript页面将加载304 Not Modified Error并且我的javascript停止工作.

我理解这是由于浏览器缓存,但我怎么能避免这种情况呢?我用一个脚本调用加载初始HTML页面

<script src="js/config.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

然后继续从该脚本中动态加载其余部分

window.onload = function () {
    var scripts = ['http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js', 'js/core.js', 'js/sandbox.js']; //Application scripts
    var loaded = 0;
    //Callback is executed after all scripts have been loaded.
    var callback = function () {
        if (loaded + 1 == scripts.length) {
            //Create Modules
            CORE.loader("js/modules/Login.js", function () {
                CORE.createModule('loginForm', Login);
            });

            //Create HTML bindings.
            CORE.createBinding('appContainer', '#Login', 'login.html');
            CORE.bindHTML(window.location.hash); //Loads hash based page on startup
        } else {
            loaded++;
            loadScript(scripts[loaded], callback);
        }
    };

    loadScript(scripts[0], callback); …
Run Code Online (Sandbox Code Playgroud)

html javascript caching browser-cache page-refresh

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

Java 每天在同一时间向不同时区发送电子邮件

原来这似乎是一个复杂的主题,请告诉我我的方法是否太简单。

基本上,我想要做的是每天早上 7 点向用户列表发送电子邮件提醒(仅当他们有提醒出现时,但这不是重点)。当然,早上 7 点是在不同的时间,具体取决于世界各地的每个人的服务器位置。

计划是在用户注册时通过 javascript 从用户那里收集 GMT 时差:

var today = new Date();  
var offset = -(today.getTimezoneOffset()/60);
Run Code Online (Sandbox Code Playgroud)

很简单,我现在知道偏移时间并将其与其他用户数据一起存储在数据库中。现在服务器端我设置了一个每小时运行一次的 TimerTask。我收集系统小时(比如它的 5 点),看看离我的目标时间有多远(在这种情况下是 2 (7-5)),得到系统偏移小时(在这种情况下是 -5),然后拉数据库中 GMT 偏移时间为 -3 (-5 + 2) 的所有用户,然后发送电子邮件等。此时我假设我知道每个人的时区偏移为 -3 的时间是早上 7 点,我可以继续这个过程。这将在下一小时再次运行并收集时区偏移为 -4 的所有用户。这是真正有效的东西,还是我错过了什么?

Calendar systemTime = Calendar.getInstance();
int targetHour = 7;
int currentHour = systemTime.get(Calendar.HOUR_OF_DAY); //Its 5 am.
int difference = targetHour - currentHour; //2
int zoneOffset = systemTime.get(Calendar.ZONE_OFFSET) / (1000*60*60); //-5
int targetZone = zoneOffset + difference; //-3

List<User> users = userDAO.findByZoneOffset(targetZone); …
Run Code Online (Sandbox Code Playgroud)

java timezone gmt

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

断电时优雅地关闭应用程序

我知道使用UPS防止服务器立即关闭的重要性.如何在Java应用程序中侦听此类事件?

假设我的UPS将在断电时继续满负荷运行5分钟.他们的服务器将继续运行,但我的应用程序将如何知道是时候开始正常关闭事情了?

这个特定的应用程序主要处理客户端到数据库事务.我主要关注的是在服务器在mysql事务中间立即断电的情况下数据损坏.以下几点是处理电力情况的正确方法吗?

  • 电力消失了.UPS电池模式.应用会检测到此
  • 应用程序以某种方式阻止所有传入的请求(任何有关这样做的建议都会有所帮
  • 在几分钟内,所有正在进行的交易都应该完成.
  • 关机申请
  • 如果电池电量耗尽,服务器会停机......等待恢复.

有没有办法在恢复供电时自动重启服务器和应用程序,还是必须手动完成?

java shutdown

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

我的Tomcat应用程序可以在Ubuntu服务器上写什么文件夹

我不确定在这种情况下我使用Ubuntu Server的事实是否重要.当我尝试使用File.mkdirs()方法创建文件夹时,它不会抛出异常,只是永远不会工作.

可以在此处找到有关特定代码引用的问题的更大解释:无法在服务器上创建目录.许可问题?

我正在写一个新问题的原因是因为我想知道我是否因为权限而在服务器上创建目录时遇到问题.

String path = /home/username/foldertocreate;
File file = new File(path);
file.mkdirs();
Run Code Online (Sandbox Code Playgroud)

所以我想在/ home/username目录中创建一个文件夹.当我在我的开发盒上以及Eclipse内部的tomcat实例上以dev模式运行时,这很好用,但是当代码在服务器上运行时失败.这可能是因为在开发框中用户已登录,因此打开了写入/ home/username文件夹的权限?在服务器上,用户在程序运行时实际上没有登录...

我能写一个特定的文件夹吗?

我检查了当前设置为700的文件夹的权限.这可能是问题吗?将此文件夹设置为666或777是否安全?即使用户未登录,此文件夹是否可写?

更新:尝试将文件夹权限更改为755,没有运气.

java io tomcat ubuntu-server

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

使用JavaScript进行HTMLCollection更改事件

如果我假设正确,HTMLCollection是动态的.

在文档中添加或删除自动更改的项目.

有没有办法使用事件处理程序检测HTMLCollection大小的变化?除了使用计时器不断轮询收集当然.

html javascript dom cross-browser dom-events

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