Java 当按下listview外部的按钮时,如何获取列表视图中所有元素的值
我的listview的每一行都由一个TextView和一个EditText组成,我在listview外有一个按钮。单击该按钮时,我希望检索所有ExitText值 我已经在DialogFragment中生成了ListView。这是我试图完成的saveButton onClick。这是我的密码。任何帮助都将不胜感激Java 当按下listview外部的按钮时,如何获取列表视图中所有元素的值,java,android,Java,Android,我的listview的每一行都由一个TextView和一个EditText组成,我在listview外有一个按钮。单击该按钮时,我希望检索所有ExitText值 我已经在DialogFragment中生成了ListView。这是我试图完成的saveButton onClick。这是我的密码。任何帮助都将不胜感激 public class SubVitalsEntryDialogFragment extends DialogFragment { ArrayList<SubVital
public class SubVitalsEntryDialogFragment extends DialogFragment {
ArrayList<SubVitals> subVitalList = new ArrayList<SubVitals>();
ListView mylist;
Button saveButton;
Button cancelButton;
EditText entryEditText;
public static SubVitalsEntryDialogFragment newInstance(ArrayList<SubVitals> sub) {
SubVitalsEntryDialogFragment f = new SubVitalsEntryDialogFragment();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putParcelableArrayList("subVitalList", sub);
f.setArguments(args);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.subvitals_dialog_layout, null, false);
mylist = (ListView) view.findViewById(R.id.vitalEntryListView);
saveButton = (Button) view.findViewById(R.id.entrySaveButton);
cancelButton = (Button) view.findViewById(R.id.entryCancelButton);
//getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().setTitle("Enter your vitals");
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getDialog().dismiss();
}
});
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
///??????????
}
});
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
subVitalList = getArguments().getParcelableArrayList("subVitalList");
ArrayAdapter<SubVitals> adapter = new MyListAdapter(subVitalList);
mylist.setAdapter(adapter);
}
private class MyListAdapter extends ArrayAdapter<SubVitals>{
public MyListAdapter(ArrayList<SubVitals> subVitalList){
super(getActivity(), R.layout.subvitals_dialog_layout, subVitalList);
Log.d("Tag", "super okay");
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if (itemView == null)
itemView = LayoutInflater.from(this.getContext()).inflate(R.layout.sub_vital_template, parent, false);
String currentVital = subVitalList.get(position).getSubVitalName();
//Fill the view
TextView vitalText = (TextView) itemView.findViewById((R.id.vitalEntryTextView));
vitalText.setText(currentVital);
return itemView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return subVitalList.size();
}
}
}
公共类subvitalEntryDialogFragment扩展了DialogFragment{
ArrayList subVitalList=新的ArrayList();
列表视图mylist;
按钮保存按钮;
按钮取消按钮;
EditText条目EditText;
公共静态子VitalEntryDialogFragment新实例(ArrayList子){
SubVitalEntryDialogFragment f=新的SubVitalEntryDialogFragment();
//提供num输入作为参数。
Bundle args=新Bundle();
args.putParcelableArrayList(“subvitalist”,sub);
f、 设置参数(args);
返回f;
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.subvitals\u对话框\u布局,null,false);
mylist=(ListView)view.findViewById(R.id.vitalEntryListView);
saveButton=(Button)view.findViewById(R.id.entrySaveButton);
cancelButton=(Button)view.findViewById(R.id.entryCancelButton);
//getDialog().getWindow().requestFeature(Window.FEATURE\u NO\u TITLE);
getDialog().setTitle(“输入您的生命体征”);
cancelButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
getDialog().discouse();
}
});
saveButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
///??????????
}
});
返回视图;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
subVitalList=getArguments().getParcelableArrayList(“subVitalList”);
ArrayAdapter适配器=新的MyListAdapter(subVitalList);
mylist.setAdapter(适配器);
}
私有类MyListAdapter扩展了ArrayAdapter{
公共MyListAdapter(ArrayList subVitalList){
super(getActivity(),R.layout.subvitals_对话框_布局,subVitalList);
Log.d(“标签”,“超级好”);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图项视图=转换视图;
如果(itemView==null)
itemView=LayoutInflater.from(this.getContext()).flate(R.layout.sub_vital_模板,父项,false);
字符串currentVital=subVitalList.get(position.getSubVitalName();
//填充视图
TextView vitalText=(TextView)itemView.findViewById((R.id.vitalEntryTextView));
vitalText.setText(currentVital);
返回项目视图;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回subVitalList.size();
}
}
}
--------------编辑------------------
公共类subvitalEntryDialogFragment扩展了DialogFragment{
ArrayList subVitalList=新的ArrayList();
列表视图mylist;
按钮保存按钮;
按钮取消按钮;
EditText条目EditText;
List vitalsEntered=新建ArrayList();
私有HashMap textValues=新HashMap();
公共静态子VitalEntryDialogFragment新实例(ArrayList子){
SubVitalEntryDialogFragment f=新的SubVitalEntryDialogFragment();
//提供num输入作为参数。
Bundle args=新Bundle();
args.putParcelableArrayList(“subvitalist”,sub);
f、 设置参数(args);
返回f;
}
@凌驾
创建视图上的公共视图(布局、充气机、最终视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.subvitals\u对话框\u布局,null,false);
mylist=(ListView)view.findViewById(R.id.vitalEntryListView);
saveButton=(Button)view.findViewById(R.id.entrySaveButton);
cancelButton=(Button)view.findViewById(R.id.entryCancelButton);
//getDialog().getWindow().requestFeature(Window.FEATURE\u NO\u TITLE);
getDialog().setTitle(“输入您的生命体征”);
cancelButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
getDialog().discouse();
}
});
saveButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Log.d(“保存在内部”,“确定”);
对于(Map.Entry:textValues.entrySet()){
String key=entry.getKey();
字符串值=entry.getValue();
Log.d(“HASHCHECK”,“Key:+Key+“Value”+Value”);
//做事
}
}
});
返回视图;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
subVitalList=getArguments().getParcelableArrayList(“subVitalList”);
ArrayAdapter适配器=新的MyListAdapter(subVitalList);
mylist.setAdapter(适配器);
}
私有类MyListAdapter扩展了ArrayAdapter{
公共MyListAdapter(ArrayList subVitalList){
super(getActivity(),R.layout.subvitals_对话框_布局,subVitalList);
Log.d(“标签”,“超级好”);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//返回super.getView(位置,
public class SubVitalsEntryDialogFragment extends DialogFragment {
ArrayList<SubVitals> subVitalList = new ArrayList<SubVitals>();
ListView mylist;
Button saveButton;
Button cancelButton;
EditText entryEditText;
List<String> vitalsEntered = new ArrayList<>();
private HashMap<String, String> textValues = new HashMap<String, String>();
public static SubVitalsEntryDialogFragment newInstance(ArrayList<SubVitals> sub) {
SubVitalsEntryDialogFragment f = new SubVitalsEntryDialogFragment();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putParcelableArrayList("subVitalList", sub);
f.setArguments(args);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.subvitals_dialog_layout, null, false);
mylist = (ListView) view.findViewById(R.id.vitalEntryListView);
saveButton = (Button) view.findViewById(R.id.entrySaveButton);
cancelButton = (Button) view.findViewById(R.id.entryCancelButton);
//getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().setTitle("Enter your vitals");
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getDialog().dismiss();
}
});
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("SAVE INSIDE","OK");
for (Map.Entry<String,String> entry : textValues.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
Log.d("HASHCHECK","Key: " + key + " Value" + value);
// do stuff
}
}
});
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
subVitalList = getArguments().getParcelableArrayList("subVitalList");
ArrayAdapter<SubVitals> adapter = new MyListAdapter(subVitalList);
mylist.setAdapter(adapter);
}
private class MyListAdapter extends ArrayAdapter<SubVitals>{
public MyListAdapter(ArrayList<SubVitals> subVitalList){
super(getActivity(), R.layout.subvitals_dialog_layout, subVitalList);
Log.d("Tag", "super okay");
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//return super.getView(position, convertView, parent);
//Making sure we've a view to work with(may have been given null
Log.d("TAG","Inside get view");
View itemView = convertView;
boolean convertViewWasNull = false;
if (itemView == null){
itemView = LayoutInflater.from(this.getContext()).inflate(R.layout.sub_vital_template, parent, false);
convertViewWasNull = true;
}
TextView vitalText = (TextView) itemView.findViewById((R.id.vitalEntryTextView));
EditText vitalEditText = (EditText) itemView.findViewById(R.id.vitalEntryEditText);
if(convertViewWasNull ){
vitalEditText.addTextChangedListener(new GenericTextWatcher(vitalEditText));
}
String currentVital = subVitalList.get(position).getSubVitalName();
//Fill the view
vitalText.setText(currentVital);
return itemView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return subVitalList.size();
}
private class GenericTextWatcher implements TextWatcher {
private View view;
private GenericTextWatcher(View view) {
this.view = view;
}
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
public void afterTextChanged(Editable editable) {
String text = editable.toString();
//save the value for the given tag :
textValues.put(view.getTag().toString(), editable.toString());
}
}
}
}