Android ListView响应

时间:2013-05-14 09:09:48

标签: android listview

我使用arrayAdapter创建了一个listview。它包含

  1. TextView

  2. 两个单选按钮(即广播组)

  3. 一个EditText
  4. 此外,添加了具有提交按钮的页脚。 TextView正在动态设置.Radiobuttons具有yes和no值。

    问题是,在点击提交按钮时,我希望从listview中获取所有值,将其发送到某处,但为radiobutton和edittext获取空值

    这是我的代码

        final Question weather_data[] = new Question[]
                {
                new Question(str[0], r1, r2, etext, radio_group),
                new Question(str[01], r1, r2, etext, radio_group),
                new Question(str[02], r1, r2, etext, radio_group),
                new Question(str[03], r1, r2, etext, radio_group),
                new Question(str[04], r1, r2, etext, radio_group),
                };
    
        QuestionAdapter adapter = new QuestionAdapter(this, 
                R.layout.listview_item_row, weather_data);
    
    
        listView1 = (ListView)findViewById(R.id.securityListView);
    
        View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
        listView1.addHeaderView(header);
        View footer = (View)getLayoutInflater().inflate(R.layout.listview_footer_row, null);
        listView1.addFooterView(footer);
        Button btnSubmit=(Button)(footer.findViewById(R.id.submit));
        listView1.setAdapter(adapter);
        Question w1=    (Question) listView1.getItemAtPosition(2);
    
        System.out.println(w1);
        System.out.println(listView1.getParent().toString());
        System.out.println("Child Count is "+listView1.getChildCount());
    
    
        btnSubmit.setOnClickListener(new OnClickListener() {
    
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "Footer Toast", Toast.LENGTH_LONG).show();
                System.out.println("In Footer OnClick");
                Toast.makeText(MainActivity.this,"Footer Toast", Toast.LENGTH_LONG).show();
    
                myQue=(Question) listView1.getItemAtPosition(3);
                System.out.println(((Question) listView1.getItemAtPosition(3)).editResponse.getText()+" In Edit Text");
                System.out.println(((Question) listView1.getItemAtPosition(3)).radioYes.isChecked());
                // I want these 2 lines to print the answer (values entered by user). But showing null or values set by me at runtime.
    
            }
        });
    
    }
    

    }

2 个答案:

答案 0 :(得分:0)

所以,有几种方法可以解决这个问题。

尝试从listView获取项目,并找到文本和布尔值:

        public void footerButtonClick(){
            for(int i=0;i<listView.getChildCount;i++){
                String text=((EditText)listView.getChildAt(i).findViewById(R.id.your_edit_text_id)).
                getText().toString();
               //and the same with your radioGroups.

            }

        }

或者您可以尝试在MainActivity类中创建布尔值和字符串值的静态数组,并通知textWatchers以获取radioGroups的EditTexts和valueChangers。当文本或布尔值发生变化时,在静态数组中更改它们。然后,当您按下按钮

时,您可以使用此数组

答案 1 :(得分:0)

为此您必须使用某些并行数据结构保存所有这些信息,当这些值发生变化时,例如单选按钮更改和文本视图文本更改时您必须更新值,请在单击“提交”按钮时发送这些值。