小编Nik*_*wal的帖子

为什么以及何时取消注册android中的内容观察者

我正在开发一个Android应用程序,并第一次与内容观察者合作.所以我阅读了很多教程并得到了为什么提供它以及如何使用它的概念.

现在我已经在博客上阅读了这些内容

别忘了取消注册内容观察者

所以,我无法理解我是否要注册ContentObserver然后我必须取消注册的情况.

如果观察者的目的得到满足,那么它可以取消注册.但我必须观察直到用户卸载应用程序,然后我将取消注册观察者.

这是该博客的网址

http://www.grokkingandroid.com/use-contentobserver-to-listen-to-changes/

java android contentobserver

8
推荐指数
3
解决办法
5779
查看次数

ListView项目顶部和底部的ListView分隔符

我正在使用Android Listview,并且我想在listview项目的两侧使用1px分隔符意味着在两种不同颜色的顶部和底部.但问题是我没有登录以显示底部的分隔符.我尝试了,android:layout_below但显示无效.

这是Listview代码

<ListView
        android:id="@+id/myphnview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@drawable/dividerheight"
        android:background="#E9EAEC"
        android:clickable="true"
        android:divider="@drawable/dividerheight" >
    </ListView>
Run Code Online (Sandbox Code Playgroud)

这是我用于顶部边框的xml文件.dividerheight.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="line" >
            <stroke android:color="#c6c7c9" />

            <size android:height="1px" />
        </shape>
    </item>


</layer-list>
Run Code Online (Sandbox Code Playgroud)

这是我的行的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rowlayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#E9EAEC"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2" >

        <ImageView
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dp" 
            android:background="@drawable/ic_launcher"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/file_name"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_margin="5dp"
            android:text="Hello Android "
            android:textColor="@android:color/black"
            android:textSize="20dp" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp" …
Run Code Online (Sandbox Code Playgroud)

android listview android-layout

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

没有得到SD卡相关的意图到我的广播接收器

我正在尝试注册接收器以删除SD卡,但我的接收器没有被要求删除sd卡粘贴我的代码.我在oncreate()中注册接收器并在ondestroy函数中取消注册.如果我有任何错误,请告诉我.

void registerSDCardStateChangeListener() {
    final String MEDIA_REMOVED = "android.intent.action.MEDIA_REMOVED";
    final String MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED";
    final String MEDIA_BAD_REMOVAL = "android.intent.action.MEDIA_BAD_REMOVAL";
    //      final String MEDIA_EJECT = "android.intent.action.MEDIA_EJECT";
    final String MEDIA_EJECT = "android.intent.action.MEDIA_SCANNER_FINISHED";

    mSDCardStateChangeListener = new BroadcastReceiver() {

        @
        Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action.equalsIgnoreCase(MEDIA_REMOVED) || action.equalsIgnoreCase(MEDIA_UNMOUNTED) || action.equalsIgnoreCase(MEDIA_BAD_REMOVAL) || action.equalsIgnoreCase(MEDIA_EJECT)) {
                if (mMediaPlayer != null) {
                    stopPlayBack();
                }
            }
        }
    };

    IntentFilter filter = new IntentFilter();
    filter.addAction(MEDIA_REMOVED);
    filter.addAction(MEDIA_UNMOUNTED);
    filter.addAction(MEDIA_BAD_REMOVAL);
    filter.addAction(MEDIA_EJECT);
    registerReceiver(mSDCardStateChangeListener, filter);
}
Run Code Online (Sandbox Code Playgroud)

如果我的代码有任何问题,请告诉我.

android sd-card

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

如何使用backbone.js保存集合

我有一个类别的层次结构.我使用jquery库来构建层次结构,以便按照用户想要的方式混淆.然后他们点击保存.因此,要保存的初始层次结构和层次结构可能完全不同.

层次结构表示为集合,我使用parentIds使用ol和li标记构建树.

当用户单击"保存"时,我需要使用新的parentId更新集合中的所有项目,并将每个项目与服务器同步.

我想知道是否有人对如何继续这里有任何建议.我在Backbone.sync的文档中看到,'' setTimeout用于批量快速更新到单个请求.''所以,如果我理解正确,我会将每个调用排队到Backbone.sync然后使用setTimeout几秒后将我的队列发送到服务器?

另外,如果我重写Backbone.sync,我是否仍然需要一个'save'方法,用于解析响应的json的集合(服务器响应必须发回一个对象列表),然后调用模型.set集合中的每个项目?有人有任何示例代码吗?

谢谢!

model-view-controller jquery backbone.js

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

在android中动态注册/取消注册广播接收器

我想通过广播动态注册和取消注册我的接收器类:"android.net.wifi.STATE_CHANGE"如果我在清单中执行此操作,这非常有效.但这使它变得静止.我想在activity类中动态地完成它.它在活动类中的通讯命令是什么?

这就是我的代码......而且由于注册和取消注册(多次)我的接收器(它正在启动服务),我遇到了问题.

public class startScreen extends Activity {
    /** Called when the activity is first created. */

    private BroadcastReceiver receiver = new BroadcastReceiver() {    

        @Override
        public void onReceive(Context context, Intent intent) {
            Intent serviceIntent = new Intent();
            serviceIntent.setAction("com.example.MyService");
            context.startService(serviceIntent);    
        }    
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.initial);

        final IntentFilter filter = new IntentFilter();
        filter.addAction("android.net.wifi.STATE_CHANGE");   

        Button button = (Button) findViewById(R.id.button1);
        final ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggleButton1);

        try {
                ...some code...
            if (bool == true) {
                toggleButton.setChecked(true);
                this.registerReceiver(receiver, filter);
            } …
Run Code Online (Sandbox Code Playgroud)

android dynamic broadcastreceiver android-service

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

如何在列表视图中使项目可点击?

我一直在努力寻找解决方案,但收效甚微.我必须显示一个包含项目列表的弹出窗口.我能够显示窗口,但单击列表视图中的项目时未调用onitemclicklistener.任何有关此问题的帮助将不胜感激.

谢谢

EDIT1:

public class PopUpWindowActivity extends Activity {

    /** Called when the activity is first created. */
    String[] countries = new String[] {
        "India", "USA", "Canada"
    };

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout ll = new LinearLayout(this);
        ListView lv = new ListView(this);
        lv.setAdapter(new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, countries));
        lv.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView <? > arg0, View arg1, int arg2,
                    long arg3) {
                    Log.v("clicked", (String)((TextView) arg1).getText());
                }

            });
        ll.addView(lv); …
Run Code Online (Sandbox Code Playgroud)

android listview popupwindow clickable onitemclicklistener

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

Backbone js从服务器自动刷新/重新加载集合,并使用集合更新视图

Backbone的新手,请承担我不那么漂亮的主干javascript代码.

这是我的代码

var Schedule = Backbone.Model.extend({
    initialize: function () {
        console.log("initializing model");
    }
});

var ScheduleCollection = Backbone.Collection.extend({
    model: Schedule,
    url: "<%=students_swimming_classschedules_path%>",
    parse: function (resp) {
        return resp;
    },
});

var Schedules = Backbone.View.extend({
    initialize: function () {
        console.log("initializing view");
        collection.on('add', this.render, this);
        this.render();
    },

    render: function () {
        for (var i = 0; i < collection.length; i++) {
            s += "<tr><td>" + collection.models[i].get('account') + "</td><td>" + collection.models[i].get('status') + "</td></tr>";
        }
        this.$el.html(s);
    },
})

var schedules = new Schedules({
    el: …
Run Code Online (Sandbox Code Playgroud)

javascript model-view-controller jquery backbone.js

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

哪个更安全,为什么是JSON或XML

我想在Java EE中实现Web服务,其响应将是一个JSON.这是我第一次尝试这样做但在此之前我只是想知道JSON是否存在任何安全问题,因为在我阅读的许多博客中都提到了类似"JSON与XML相比不安全".JSON具有易用,速度快等优点.

所以任何人都可以向我解释JSON是否真的不安全.如果是这样的话.请举例说明.

关于这个主题有几篇旧文章:

JSON vs XML - 2006

  • 担心 eval

JSON并不像人们想象的那么安全

  • 仅声称对通过JSON提供的非公共数据的保护是使用唯一的URL.
  • CSRF(Cross Site Request Fogery) - 2007年
  • Array 黑客通过浏览器解析JavaScript解析.

java xml json web-services java-ee

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

Spring数据mongoRepository查询排序

我想看看如何在我拥有的存储库方法中将一个排序引入Query注释.我已经在谷歌和这里看到了这段代码,但我无法使其有效

@Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)")
    Job findOneActiveOldest();

@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }")
Job findOneActiveOldest();
Run Code Online (Sandbox Code Playgroud)

我知道通过分页我可以做到,但在某些情况下我不需要分页,所以我想知道如何使用Query注释.

有什么建议吗?

java spring mongodb spring-data spring-data-mongodb

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

Marionette.js CollectionView,只渲染特定的模型

我正在重构我的Backbone.js应用程序以使用Marionette.js,而我正试图将我的脑袋包裹起来CollectionView.

假设我有几个ItemView模型Cow:

// Declare my models.
var Cow = Backbone.Model.extend({});
var Cows = Backbone.Collection.extend({
  model: Cow
});

// Make my views
var GrassPatch = Marionette.ItemView.extend({
  tagName:  'div',
  template: "<section class='grass'>{{name}}</section>",
})

var Pasture = Marionette.CollectionView.extend({});

// Instantiate the CollectionView,
var blissLand = new Pasture({
  itemView: GrassPatch;
});

// Now, add models to the collection.
Cows.add({
  name: 'Bessie',
  hasSpots: true
});

Cows.add({
  name: 'Frank',
  hasSpots: false
});
Run Code Online (Sandbox Code Playgroud)

现在这就是诀窍.我只想要在我的牧场上有斑点的奶牛.在定义我的CollectionView(牧场)时,我是如何告诉它只关注那些hasSpots===的模型true

理想情况下,我希望在所有事件中都有CollectionView过滤器,但最低限度的是,我如何仅根据其模型属性呈现一些ItemView?

UPDATE

我使用了David …

javascript model-view-controller jquery backbone.js marionette

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