Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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 覆盖对象';s toString使ListView行不可单击?_Java_Android - Fatal编程技术网

Java 覆盖对象';s toString使ListView行不可单击?

Java 覆盖对象';s toString使ListView行不可单击?,java,android,Java,Android,我有个奇怪的问题。我有一个带有侦听器的简单列表视图。当我覆盖列表对象的toString时,它会正确显示,但单击“停止工作”。当我刚刚在toString中调用super时,单击效果很好 从onCreate: ListView listView = (ListView) findViewById(R.id.listview); SearchAdapter searchAdapter = new SearchAdapter(this, 0, 0, CalendarActivity.satell

我有个奇怪的问题。我有一个带有侦听器的简单列表视图。当我覆盖列表对象的toString时,它会正确显示,但单击“停止工作”。当我刚刚在toString中调用super时,单击效果很好

从onCreate:

ListView listView = (ListView) findViewById(R.id.listview);
    SearchAdapter searchAdapter = new SearchAdapter(this, 0, 0, CalendarActivity.satellites);
    listView.setAdapter(new ArrayAdapter<Satellite>(this, R.layout.search_cell, R.id.name, CalendarActivity.satellites));
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            startActivity(new Intent(SearchActivity.this, DayActivity.class));
        }
    });
ListView ListView=(ListView)findViewById(R.id.ListView);
SearchAdapter SearchAdapter=新的SearchAdapter(this,0,0,CalendarActivity.satellites);
setAdapter(新的ArrayAdapter(这个,R.layout.search_单元格,R.id.name,CalendarActivity.satellites));
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
startActivity(新意图(SearchActivity.this、DayActivity.class));
}
});
卫星:

public class Satellite {

public String url;
public boolean active;
public String name;
public int id;

public ArrayList<Date> dates;

@Override
public String toString() {
    if (!name.isEmpty()) { //note that this still fails the onClick
        return name;
    } else {
        return super.toString();
    }
}
公共级卫星{
公共字符串url;
公共布尔活动;
公共字符串名称;
公共int id;
公共阵列列表日期;
@凌驾
公共字符串toString(){
如果(!name.isEmpty()){//请注意,此操作仍然无法执行onClick
返回名称;
}否则{
返回super.toString();
}
}

发生了什么?

toString
方法中使用时,可能
name
具有
null
值。难道不是一个catlog文件,您可以在其中检查Android emulator抛出的错误吗?如果是,请复制/pate在ListView中选择元素时放置在那里的错误消息。没有抛出错误,并且没有一个名称是空的。更新:Puting
return name+super.toString()
也可以,但是
return name+“”
不可以。确实很奇怪。顺便说一下,您可以使用`符号将代码封装在注释中:)(`)
像这样(`
(`)