小编Mer*_*mer的帖子

在Android中替代高度飞溅的SPINNER CLASS

在我目前的项目中,我已经处理过spinner类,它几乎可以从各个方面进行定制.因此,当我处理它时,我已经获得了一些详细的方面.所以我将从它显示为什么它有缺陷的部分开始.

1_T在弹出窗口/布局/对话框created-shows(布局膨胀)事件中没有默认侦听器.有一些解决方法,如微调器上的ontouch监听器,然后检查是否在旋转器区域发生触摸完成,然后你知道弹出窗口将显示但仍然不可靠,因为你可以用异步任务填充弹出窗口.

2_再次选择相同索引时,不会触发项目选定事件.这真的很烦人,因为我可能会根据其他条件更新适配器,这将改变当前选择和列表顺序等...当然有一种解决方法,通过创建自己的微调器类并将其添加到xml中,如com.myproject.customspinner等......(Spinner:onItemSelected在所选项目保持不变时不被调用)

3_Spinner没有可用的功能 OnClickListener和OnItemLongTouchListener事件.

4_Changing Spinner DropDown列表divider元素的属性(如颜色)比更改所有dropdrown和spinner的背景视图本身需要更多的劳动,这是非常荒谬的.

5_Spinner这个名字本身很荒谬=))).

那么我可以用什么而不是Spinner?哪种方式最好?

android spinner alternate android-spinner

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

Android Sqlite性能

我一直在做一些实验来测量android上的sqlite性能.我对结果感到失望.我所做的是向表中插入10.000个查询,并且需要130-140秒 才能满足这些条件 ;

1.三星galaxy s3处于省电模式

2.插入的数据(或类)有3个字符串和1个浮点数(对于sqlite是真的)

3.插入事件正在asynctask中完成.

4.在asynctask中,我显示了一个进度对话框,其中包含传递的计时器文本(System.currentTimeMillis - seconds etc blala)

class AddStudentsTask extends AsyncTask<Void,Integer,Void>
{
    ProgressDialog prgDialog;
    int max = 10000;
    Student s;
    long seconds = System.currentTimeMillis();


    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        prgDialog = new ProgressDialog(MainActivity.this);
        prgDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        prgDialog.setMessage(seconds+"");
        prgDialog.setMax(max);
        prgDialog.setCancelable(false);
        prgDialog.show();

    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate();
        prgDialog.setProgress(values[0]);
        sList.add(s);
        String s = (System.currentTimeMillis()-seconds)/100+"";
        if(s.length()>2)
            s = s.substring(0,s.length()-1) + "." + s.charAt(s.length()-1);
        else if(s.length() == 2)
            s = s.charAt(0) + …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask android-sqlite

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

Android Edittext Spannable问题

每次Edittext onAfterTextChange方法时,我都会检查是否输入了一些特殊字符串(来自functionlist变量),然后更改该字符串的特殊颜色.代码如下

    for(String s:functionList)
    {
        final Pattern p = Pattern.compile(s);
        final Matcher matcher = p.matcher(inputStr);

        while(matcher.find())
        {
            //if(matcher.end() - matcher.start()== s.length())
           inputStr.setSpan(new ForegroundColorSpan(Color.parseColor(highlightColor)),     
           matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我不使用Html.FromHtml方法的原因是; 它迫使我使用setText方法改变光标位置,因为我的edittext也从按钮(按钮调用settext)改变,不仅是软键盘,settext方法废弃了光标位置,因为按钮改变将光标位置设置为0即使它不是! !因此我不能在软键盘中间添加一些东西(当我尝试添加时,cursorposition总是设置为0).这就是为什么我必须使用spannable.

无论如何我的问题是,例如我的一个特殊文本是"日志"..当我输入日志它工作正常(日志),当附加空格字符日志(日志日志)它再次工作正常,但当我从第二次删除g日志,第一个日志颜色也消失了!(log lo)哪一定不应该发生.认为粗体日志是彩色的......

为什么会这样?

android spanned android-edittext spannable

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

Java - 参数和增强的For循环复制问题

假设我有这样的代码;

public void insert(Student[] stus)
{
    int count = 0;
    for(Student s: stus)
    {
    s.setId( bla bla);
    stus[count].setId(bla bla) // is this line needed?
    count++;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我从增强的for循环更改s上的任何内容,我是否也可以看到stus数组中的更改?循环复制的增强如何在参数或其他东西中起作用?

java foreach parameter-passing arraycopy

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

查找EditText可编辑的getSpans开始和结束索引

我正在尝试将All Spans应用于文本,如下所示;

public String getTextWithTags(Editable e)
{

    StyleSpan[] ss = e.getSpans(0,e.length(),StyleSpan.class);
    ss[0].getSpanStart <--- ? This is the problem, no such function

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

但是没有索引查找功能来替换标签以将它们存储在数据库中,这样我可以在重新打开文本时检索所有跨度.如何从可编辑对象获得所有跨度位置?

java android android-edittext spannablestring

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

在我的类中实现Comparable接口有什么意义?

我没有得到落实的点Comparable界面,因为我不能使用比较操作符<,<=,>=,和>在像C++语言的操作压倒一切的我的自定义类,比如我就可以; 我仍然需要compareTo直接调用该方法.

我可以编写自己的布尔方法,如isEqualor bigger,这与方法一样有用,如果不是更有用的话compareTo.

我错过了什么吗?实施它有什么意义?

java comparable

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

Intellij fat one jar 神器不生成工作输出

Intellij fat one jar artifact 不会生成工作输出。下面你可以看到我的设置和项目结构(左)。当我单击构建工件,然后单击生成的输出时,没有任何反应。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

java build intellij-idea executable-jar

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

为什么子序列(a,b).toString()比子串(a,b)更快?

为什么子序列(a,b).toString()比子串(a,b)更快?当我将所有子序列转换为子串时,它一直减慢到%7.为什么会这样?以下是我的代码;

private static String filterStr(String s)
{
    for(int a = 0; a < s.length(); a++)
    {
        int c = s.charAt(a);
        if(((c < 65) || ((c >90) &&(c < 97)) || (c > 122)))
        {
            if(c!=34 && c!=96 && c!=39)// t?rnak de?illerse
            {
                String temp = s.substring(0,a);
                temp+= s.subSequence(a+1,s.length());
                s = temp;
                a--;
            }
            else 
            {
                if(a !=0) // if not at the beginning
                {   
                    if(a == s.length()-1)
                        s = s.subSequence(0,s.length()-1).toString();
                    else
                        s = s.subSequence(0,s.length()-2).toString(); …
Run Code Online (Sandbox Code Playgroud)

java string substring subsequence

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

存储过程在sql management studio中返回int而不是NVARCHAR

  Create PROCEDURE GETTABLENAME(@TableId nvarchar(10))
as
begin
declare @TableName nvarchar(150),
        @SQLString nvarchar(4000)

SET @SQLString = N'select  @TableName=sys.tables.name from sys.tables 
        where sys.tables.name like  ''%[_]'+@TableId+'[_]%'' '

exec   sp_executesql @SQLString,
       N'@TableName nvarchar(150) output,  @TableId nvarchar(10) '
       ,@TableId = @TableId
       ,@TableName = @TableName output

return  @TableName  
end 
Run Code Online (Sandbox Code Playgroud)

当我打电话内(不存储过程),它完美的作品,因为我使用PRINT的@TableName,并得到我的结果.问题是当我调用这个存储过程时,它试图将结果转换为int而我不知道为什么?

Conversion failed when converting the nvarchar value 'E_GrupBilancoGelirTablosu_935_Form' to data type int
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures

0
推荐指数
1
解决办法
581
查看次数