我使用arrayAdapter创建了一个listview。它包含
TextView
两个单选按钮(即广播组)
此外,添加了具有提交按钮的页脚。 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.
}
});
}
}
答案 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)
为此您必须使用某些并行数据结构保存所有这些信息,当这些值发生变化时,例如单选按钮更改和文本视图文本更改时您必须更新值,请在单击“提交”按钮时发送这些值。