Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将微调器的第一个位置设置为null_Java_Android_Android Arrayadapter_Adapter_Android Spinner - Fatal编程技术网

Java 如何将微调器的第一个位置设置为null

Java 如何将微调器的第一个位置设置为null,java,android,android-arrayadapter,adapter,android-spinner,Java,Android,Android Arrayadapter,Adapter,Android Spinner,我用ArrayAdapter对象填充了一个微调器,但我需要这个数组的第一个位置始终为空或显示类似“选择对象”的内容。我在这里搜索了论坛,但没有成功,ArrayList String或spinner.setPrompt的解决方案不起作用=/ ArrayList<Object> objects = null; objects= findMyObjects(); final ArrayAdapter<Object> adapterObjects = new ArrayAda

我用ArrayAdapter对象填充了一个微调器,但我需要这个数组的第一个位置始终为空或显示类似“选择对象”的内容。我在这里搜索了论坛,但没有成功,ArrayList String或spinner.setPrompt的解决方案不起作用=/

ArrayList<Object> objects = null;

objects= findMyObjects();

final ArrayAdapter<Object> adapterObjects = new ArrayAdapter<Object>(contexto, R.layout.spinner_item, objects);
mySpinner = (Spinner) viewPai.findViewById(R.id.s_spinner);
mySpinner.setAdapter(adapterObjects);
adapterObjects.notifyDataSetChanged();
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

                }

                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {

                }
            });



public ArrayList<Object> findMyObjects() {
        allObjects = new ArrayList<Object>();
        Cursor cursor;

        String sql = "SELECT * FROM Object; ";
        cursor = database.rawQuery(sql, null);

        if (cursor.getCount() >= 0) {
            cursor.moveToFirst();
            while (!cursor.isAfterLast()) {
                Objects object = new Objects();
                object.setId(cursor.getLong(0));
                allObjects.add(object);
                cursor.moveToNext();
            }
        }
        cursor.close();
        return allObjects;
    }
arraylistobjects=null;
objects=findMyObjects();
最终ArrayAdapter适配器对象=新的ArrayAdapter(contexto,R.layout.spinner_项,对象);
mySpinner=(微调器)viewPai.findViewById(R.id.s_微调器);
setAdapter(适配器对象);
AdapterObject.notifyDataSetChanged();
mySpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
公共ArrayList findMyObjects(){
allObjects=newarraylist();
光标;
String sql=“从对象中选择*”;
cursor=database.rawQuery(sql,null);
if(cursor.getCount()>=0){
cursor.moveToFirst();
而(!cursor.isAfterLast()){
Objects对象=新对象();
setId(cursor.getLong(0));
添加(对象);
cursor.moveToNext();
}
}
cursor.close();
返回所有对象;
}
Quick 制作一个虚拟对象,然后在放入适配器时显示=“选择一个对象”

稍长 扩展用于放置值的arrayadapter或视图,以便第一个对象始终是一个文本,上面写着“选择对象”。

您可以尝试此示例。
链接:

我的对象只有一个id,不需要将字符串放在id为0的位置,但这种解决方案并不好。我想将字段留空或将字符串添加到第一个位置。我该怎么做?这更好地解释了我所说的,关于如何做,将您的id转换为字符串,并将它们放入ArrayAdapter。但是我恐怕不知道一个像adapter.setPrompt(“选择以下选项之一”)的干净解决方案;我尝试了,但没有成功,因为他使用ArrayAdapter字符串,我使用ArrayAdapter对象。字符串很简单,但我需要对象=/看另一个答案,完全忘记了存在的提示,这应该会更好。它不起作用,因为他创建了一个静态字符串列表,而我使用了一个动态对象列表。如果(cursor.getCount()>=0){cursor.moveToFirst(),您可以在ArrayAdapter allObjects.add中显式添加一个新字符串对象;而(!cursor.isAfterLast()){Objects object=new Objects();object.setId(cursor.getLong(0));allObjects.add(object);cursor.moveToNext();}}之后,必须检查值是否为“选择对象”或者通过实例运算符在AndroidStudio中生成错误,因为我的ArrayAdapter AllObject是对象的类型,并且不是字符串,我需要对象