Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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 Android listview适配器不显示内容_Java_Android_Listview_Adapter - Fatal编程技术网

Java Android listview适配器不显示内容

Java Android listview适配器不显示内容,java,android,listview,adapter,Java,Android,Listview,Adapter,我不知道问题出在哪里,因为一切都很好。没有显示错误或什么也没有。我甚至对适配器数据执行了System.out.println()以获取其计数并显示。问题是,listview没有显示任何内容 这是我的代码:(任何提示/帮助都将非常感谢)需要帮助的适配器是应答\u适配器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我不知道问题出在哪里,因为一切都很好。没有显示错误或什么也没有。我甚至对适配器数据执行了System.out.println()以获取其计数并显示。问题是,listview没有显示任何内容

这是我的代码:(任何提示/帮助都将非常感谢)需要帮助的适配器是应答\u适配器

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_question);
        c = this;

        //define view controls
        question = (EditText) findViewById(R.id.question);
        answers = (ListView) findViewById(R.id.answers);
        type = (Spinner) findViewById(R.id.type);
        add_choice = (Button) findViewById(R.id.add_choice);
        info = (TextView) findViewById(R.id.info);
        optional = (CheckBox) findViewById(R.id.optional);

        //default data preparation
        add_choice.setEnabled(false);
        final List<String> types = new ArrayList<>();
        types.add("Free Text");
        types.add("Free Number");
        types.add("Date");
        types.add("MultiChoice Text");
        types.add("MultiChoice Images");
        ArrayAdapter<String> types_adapter = new ArrayAdapter<String>(c,android.R.layout.simple_spinner_item, types);
        types_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        type.setAdapter(types_adapter);
        type.setSelection(0);
        type.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String selection = types.get(position).trim().toLowerCase();
                if (selection.contains("multi")) {
                    add_choice.setEnabled(true);
                } else {
                    add_choice.setEnabled(false);
                }

                //reset the answer choices
                answers_adapter.clear();
                answers_adapter.notifyDataSetChanged();
                info.setText("Answer Choices (" + answers_adapter.getCount() + ")");
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                type.setSelection(0);
            }
        });

        answers_data = new ArrayList<>(); //Initialize array adapter data

        //if this is a question edit, add question info
        String editpredata = getIntent().getStringExtra(NewQuestions.EXTRA_MESSAGE);
        editpredata_pos = Integer.parseInt(editpredata);
        if (editpredata_pos > -1){
            CustomListData epcd = NewQuestions.questions_adapter.getItem(editpredata_pos);
            String epcd_QJSON = epcd.getMoreinfo();
            try {
                JSONObject epcdqobj = new JSONObject(epcd_QJSON);
                question.setText(epcdqobj.getString("question"));
                int types_pos = 0;
                for (int i = 0;i<types.size();i++){
                    String type_str = types.get(i);
                    if (type_str.trim().toLowerCase().matches(epcdqobj.getString("type").trim().toLowerCase())){
                        types_pos = i;
                    }
                }
                type.setSelection(types_pos);
                optional.setChecked(epcdqobj.getString("optional").toLowerCase().trim().matches("yes"));
                if (epcdqobj.getString("multichoice_type").trim().length() > 0){
                    JSONArray epcdmulti = epcdqobj.getJSONArray("multichoices");
                    for (int i=0;i<epcdmulti.length();i++){
                        JSONObject spobj = epcdmulti.getJSONObject(i);
                        CustomListData epcdmcd = new CustomListData();
                        int epcdmcd_imgpos = isNumeric(spobj.getString("image").trim()) ? Integer.parseInt(spobj.getString("image")) : -1;
                        epcdmcd.setIcon(epcdmcd_imgpos < 0 ? R.drawable.choice : NewQuestion.ds[epcdmcd_imgpos]);
                        epcdmcd.setItem(spobj.getString("choice"));
                        epcdmcd.setDesc(spobj.getString("points"));
                        epcdmcd.setMoreinfo(spobj.getString("image").trim());
                        answers_data.add(epcdmcd);
                    }
                }
            }
            catch (Exception e){
                System.out.println("INTERNAL ERROR: --> (PREPARING DATA) " + t.exceptionString(e));
            }
        }

        System.out.println(answers_data.size());
        answers_adapter = new CustomListAdapter(((Activity)c), answers_data);
        answers.setAdapter(answers_adapter);
        answers.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                showDialogChoice("", position);
            }
        });
        add_choice.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String selection = type.getSelectedItem().toString().toLowerCase().trim();
                if (selection.contains("image")) {
                    showDialogChoice("image", -1);
                } else {
                    showDialogChoice("", -1);
                }
            }
        });
    }

您可以尝试。notiftyDataSetHasInvalidated()仍不工作。。。你能告诉我在哪里实施这个吗?我的新代码显示:answers\u adapter=newcustomlistapter(((活动)c),answers\u data);answers_adapter.notifyDataSetionValidated();也许还可以发布包含ListView UI的布局xml。
public class CustomListData {

    private int icon;
    private String item;
    private String desc;
    private String moreinfo;

    public CustomListData(){};

    public CustomListData(int icon, String item, String desc){
        super();
        this.icon = icon;
        this.item = item;
        this.desc = desc;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getItem() {
        return item;
    }

    public void setItem(String item) {
        this.item = item;
    }

    public int getIcon() {
        return icon;
    }

    public void setIcon(int icon) {
        this.icon = icon;
    }

    public String getMoreinfo() {
        return moreinfo;
    }

    public void setMoreinfo(String moreinfo) {
        this.moreinfo = moreinfo;
    }

}