具有ArrayAdapter <charsequence>的微调器不显示

时间:2016-09-17 00:12:59

标签: android

ArrayAdapter<CharSequence> spinAdapterHrs;
char[] charArrayHours =    new char[]{'0','1','2'};
CharSequence[] charSeqArrayHrs =
        new String[]{ charArrayHours.toString() };
spinnerLeftHrs = new Spinner( this );
spinnerLeftHrs.setSelection( startLeftHrs );
spinnerLeftHrs.setPrompt( "prompt" );
spinnerLeftHrs.setOnItemSelectedListener( this );
spinAdapterHrs = new ArrayAdapter<CharSequence>
        ( this,
          android.R.layout.simple_spinner_item,
          charSeqArrayHrs );
spinnerLeftHrs.setAdapter( spinAdapterHrs );

这可以编译好并且不会崩溃,但是Spinner的根 有一个[C @ 4的文本/提示,当选择时显示重叠 完整的盒子[C @ 417ca5a0。 它没有显示通常的Spinner线。

我让它与Integers合作,但希望节省我腐烂的三星Galaxy Ace II x的CPU时间;它是一个实时应用程序,转换只是一直运行(至少对用户而言)。

这是最近的Android sdk,但API目标是15。

环境是使用TextPad在win 10下的Ant。

希望你能帮忙!

3 个答案:

答案 0 :(得分:0)

为什么你将char数组转换为字符串??(这是问题)

您需要遍历char数组的元素并在String数组中逐个存储。

实施例

for(int i=0;i<charArrayHours.length;i++)
{
charSeqArrayHrs[i]=charArrayHours[i];
}

答案 1 :(得分:0)

通过您看到的那些字符的外观,您可能正在将每个字符串的对象引用分配给微调器列表中的项目。

尝试在内存中创建单个字符,并以第一个值将其指定给微调器。

然后,如果有效,那么你就知道你的数组没有正确设置。

我不认为编码会导致该特定字符序列填充列表。

答案 2 :(得分:0)

Character[] charArrayHrs = new Character[]{ '0','1','2' };
ArrayAdapter<Character> spinAdapterCharHrs = 
    new ArrayAdapter<Character>
        ( this, 
        android.R.layout.simple_spinner_item, 
        charArrayHrs );
spinnerLeftHrs.setAdapter( spinAdapterCharHrs );

public void onItemSelected( AdapterView<?> inParent,  
                            View inView,    
                            int  inPos,     
    inParent.getItemAtPosition( inPos ) returns a Character = 2.