小编Ant*_*nio的帖子

Android支持库ActionBar无法在2.3设备中使用

朋友你好我用v7 Appcompact实现了ActionBar支持库.我用ActionBarActivity扩展我的Activity类.以下是我的主类

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    MenuItem menuItem=menu.findItem(R.id.menu_settings);
    SearchView mSearchView=(SearchView)menuItem.getActionView();
    return super.onCreateOptionsMenu(menu);
       }

    }
Run Code Online (Sandbox Code Playgroud)

在Manifest文件中,我声明了这样的主题类型

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.appcompactdemo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity …
Run Code Online (Sandbox Code Playgroud)

compatibility android android-actionbar searchview android-support-library

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

为什么C#局部变量应该直接赋值,即使它是默认值?

如果你看下一个例子:

public void TestLocalValuesAssignment()
{
    int valueVariable; // = default(int) suits fine
    string refType; // null suits fine as well

    try
    {
        valueVariable = 5;
        refType = "test";
    }
    catch (Exception){}

    Console.WriteLine("int value is {0}", valueVariable);
    Console.WriteLine("String is {0}", refType);
}
Run Code Online (Sandbox Code Playgroud)

你可以很容易地看到,变量valueVariablerefType可能是他们在使用前未分配Console.WriteLine().编译器告诉我们有错误:

Error   1   Use of unassigned local variable 'valueVariable'
Error   2   Use of unassigned local variable 'refType'  
Run Code Online (Sandbox Code Playgroud)

这是一个普遍的案例,并且有很多关于如何解决这个问题的答案(可能的修补程序已经评论过).

我无法理解的是为什么存在这种行为?这里的局部变量与类字段的不同之处在于,如果没有赋值,最后的变量会得到默认值(引用类型为null,值类型的对应默认值为空)?也许有一个例子或一个角落案例解释了为什么选择这样的编译器行为?

c# compiler-construction initialization local-variables default-value

9
推荐指数
2
解决办法
1455
查看次数

如何在没有上下文的情况下显示弹出消息

我们正在开发一个将在JVM和中使用的库Android.现在我们需要实施试用期通知.在其他平台(.Net和Mac)中显示弹出消息框就足够了.但到目前为止,我找不到为Android做这个的方法.

问题是要显示一些消息(toast或AlertDialog),我需要有一个实际的上下文.但是由于我们的库不包含UI元素并且不以任何方式与UI相关,因此我们不会要求用户在创建组件时传递上下文.

简而言之:

  • 如何在没有从用户代码传递的上下文引用的情况下显示Toast(AlertDialog,Notification).
  • 如果我不能有人有更好的解决方案在Android和Java上实现试用模式.

notifications android toast trial android-context

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

如何使用Rx(Reactive Extensions)粘贴Observable序列中的相对延迟

我正在使用Reactive扩展(版本2.1,以防万一)开始开发,对于我的示例应用程序,我需要按一些间隔推送一系列int值,即每1秒.

我知道,我可以创建一个序列,Observable.Range<int>(0,10)但我无法弄清楚如何设置推送之间的相对时间.我已经尝试过Delay()但只在开始时只移动一次序列.

然后我找到Observable.Generate()了可以通过下一步方式调整到此任务的方法:

var delayed = Observable.
              Generate(0, i => i <= 10, i => i + 1, i => i,
                          i => TimeSpan.FromSeconds(1));
Run Code Online (Sandbox Code Playgroud)

但这似乎只适用于简单的'for-each-like'定义序列.所以,一般来说,我的问题是,我们是否可以获取任何源序列并用一些代理来包装它,这些代理将从源中提取消息并进一步推迟它?

S--d1--d2--d3--d4--d5-|
D--d1-delay-d2-delay-d3-delay-d4-delay-d5-|
Run Code Online (Sandbox Code Playgroud)

PS如果这种方法与ReactiveExtensions的概念相矛盾,请同时注意这一点.我不想"通过各种手段"这样做,并且他们将来会遇到一些其他的设计问题.

PPS一般理念是确保输出序列在事件之间具有指定的间隔,尽管输入序列是有限的还是无限的以及它推动事件的频率.

.net delay reactive-programming system.reactive

5
推荐指数
1
解决办法
2215
查看次数

C# - SQL Server - ?参数和Oledb

我在C#中编写一个小框架,用于将数据导入SQL Server.

我注意到,如果你试图使用?如果使用System.Data.SqlClient命名空间,则它们不起作用.

但是,如果使用System.Data.OleDb命名空间来处理数据库,它们可以正常工作.(您只需在连接字符串中添加Provider = SQLOLEDB)

所以我有几个问题,因为?我的解决方案需要语法:

  1. 是否有使用System.Data.SqlClient的命名参数的替代方法?我想使用有序参数.
  2. 使用一个名称空间(ado提供程序)比另一个名称空间有任何性能影响吗
  3. 还有其他原因我应该更喜欢一个名称空间吗?

为了详细说明我正在尝试做什么,我的框架将采用一些自定义属性装饰的类并生成SQL,如下所示:

INSERT INTO myTable (col1, col2, ...) VALUES (?, ?, ...)
Run Code Online (Sandbox Code Playgroud)

这个字符串将使用一个IDbCommand和几个IDataParameters创建,对于每个ExecuteNonQuery,它只会在IDataParameters上设置值.

有什么想法吗?

编辑:我尝试使用命名参数作为p0,p1等作为提到的回答者,它在SqlClient上工作得很好.但是,如果我使用Oledb,则会出错:

"Must declare the scalar variable @p0."
Run Code Online (Sandbox Code Playgroud)

我的参数创建如下:

new OleDbParameter("p" + index, GetType(attribute)); 
//GetType does work to get the correct SqlDbType
Run Code Online (Sandbox Code Playgroud)

怎么了?我也试过添加和删除参数名称中的@符号无济于事.

最终编辑:我刚刚使用Oledb?和SqlClient使用命名参数.我可以为新的提供商来回改变.

c# sql-server oledb parameters ado.net

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

从通用图像加载器获取位图

我正在尝试使用Universal Image Loader Library 获取位图资源.我已经覆盖了onLoadComplete()方法,如下所示:

loader.displayImage(thumbnail.get(position), hold.ivThumbnailReflection, options, new ImageLoadingListener() {

        @Override
        public void onLoadingStarted(String arg0, View arg1) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onLoadingComplete(String urlLink, View arg1, Bitmap loadedImage) {

            Log.i("loading complete","loading complete "+loadedImage);
            hold.ivThumbnail.setImageBitmap(loadedImage);


        }

        @Override
        public void onLoadingCancelled(String arg0, View arg1) {
            // TODO Auto-generated method stub

        }
    });
Run Code Online (Sandbox Code Playgroud)

图像在ivThumbnailReflection视图中设置,但视图上没有图像ivThumbnail.当我为loadedImage打印对象时,我得到一个表格 - android.graphics.Bitmap@4170f1d0. …

android bitmap universal-image-loader

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