Android 如何获取由自定义listview适配器设置的EditText的值

Android 如何获取由自定义listview适配器设置的EditText的值,android,android-listview,android-arrayadapter,Android,Android Listview,Android Arrayadapter,我有一个listview适配器。有一个列表是编辑文本。我有一个钮扣。现在,当单击按钮时,我想获取edittext的值。 注意:适配器中有两个列表。EditText的位置为1,另一个列表的位置为0 在onCreate()中: 私有ListView ListView; 私人名单; listElements=新的ArrayList(); 添加(新的好友列表(0)); 添加(新文本区域(1)); 如果(savedInstanceState!=null){ //恢复每个列表元素的状态 对于(BaseLis

我有一个listview适配器。有一个列表是编辑文本。我有一个钮扣。现在,当单击按钮时,我想获取edittext的值。 注意:适配器中有两个列表。EditText的位置为1,另一个列表的位置为0

在onCreate()中:

私有ListView ListView;
私人名单;
listElements=新的ArrayList();
添加(新的好友列表(0));
添加(新文本区域(1));
如果(savedInstanceState!=null){
//恢复每个列表元素的状态
对于(BaseListElement listElement:listElements){
liselement.restoreState(savedInstanceState);
}   
}
//设置列表视图适配器
setAdapter(新的ActionListAdapter(getActivity()),
R.id.list,列表元素);
shareButton=(Button)view.findViewById(R.id.sharebtn);
Svalue=(EditText)view.findViewById(R.id.Tstatus);
shareButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串值=Svalue.getText().toString();
if(value!=null&&value.length()>0){
Log.e(“msg”,值);
}
适配器:

    private class ActionListAdapter extends ArrayAdapter<BaseListElement> {
    private final String Tag = "ActionAdapter";
    int k = 0;
    private List<BaseListElement> listElements;

    public ActionListAdapter(Context context, int resourceId, List<BaseListElement> listElements) {
        super(context, resourceId, listElements);
        this.listElements = listElements;
        for (int i = 0; i < listElements.size(); i++) {
            listElements.get(i).setAdapter(this);
        }
        k = 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            if(position == 0){
            LayoutInflater inflater =
                    (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.shareview, null);
            }else{
                LayoutInflater inflater =
                        (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.textarea, null);
            }
            k = k++;
            String ki = Integer.toString(position);
            Log.e(Tag, ki);

        }
        else{
            String ki = Integer.toString(position);
            Log.e(Tag, "else : "+ki);
        }

        BaseListElement listElement = listElements.get(position);

            view.setOnClickListener(listElement.getOnClickListener());
            ImageView icon = (ImageView) view.findViewById(R.id.icon);
            TextView text1 = (TextView) view.findViewById(R.id.withWhom);
            TextView text2 = (TextView) view.findViewById(R.id.selectFriend);
            EditText status = (EditText) view.findViewById(R.id.Tstatus);
            if (icon != null && position == 0) {
                icon.setImageDrawable(listElement.getIcon());
            }
            if (text1 != null && position == 0) {
                text1.setText(listElement.getWithWhom());
            }
            if (text2 != null && position == 0) {
                text2.setText(listElement.getSelectFriend());
            }
            if(status != null)
            Log.e("adapter class", status.getText().toString());
        return view;
    }
}
私有类ActionListAdapter扩展了ArrayAdapter{
私有最终字符串标记=“ActionAdapter”;
int k=0;
私人名单;
公共ActionListAdapter(上下文上下文、int-resourceId、列表元素){
super(上下文、资源ID、列表元素);
this.listElements=listElements;
对于(int i=0;i
对不起,我找到了答案

如果
位置
是我的欲望列表的位置,那么在
if()
范围内 我使用
textchangelistener()
获取值

在我的情况下,我的愿望列表的位置总是1。因此我在
if(position==1)
范围下使用
textchangelister()

    private class ActionListAdapter extends ArrayAdapter<BaseListElement> {
    private final String Tag = "ActionAdapter";
    int k = 0;
    private List<BaseListElement> listElements;

    public ActionListAdapter(Context context, int resourceId, List<BaseListElement> listElements) {
        super(context, resourceId, listElements);
        this.listElements = listElements;
        for (int i = 0; i < listElements.size(); i++) {
            listElements.get(i).setAdapter(this);
        }
        k = 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            if(position == 0){
            LayoutInflater inflater =
                    (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.shareview, null);
            }else{
                LayoutInflater inflater =
                        (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.textarea, null);
            }
            k = k++;
            String ki = Integer.toString(position);
            Log.e(Tag, ki);

        }
        else{
            String ki = Integer.toString(position);
            Log.e(Tag, "else : "+ki);
        }

        BaseListElement listElement = listElements.get(position);

            view.setOnClickListener(listElement.getOnClickListener());
            ImageView icon = (ImageView) view.findViewById(R.id.icon);
            TextView text1 = (TextView) view.findViewById(R.id.withWhom);
            TextView text2 = (TextView) view.findViewById(R.id.selectFriend);
            EditText status = (EditText) view.findViewById(R.id.Tstatus);
            if (icon != null && position == 0) {
                icon.setImageDrawable(listElement.getIcon());
            }
            if (text1 != null && position == 0) {
                text1.setText(listElement.getWithWhom());
            }
            if (text2 != null && position == 0) {
                text2.setText(listElement.getSelectFriend());
            }
            if(status != null)
            Log.e("adapter class", status.getText().toString());
        return view;
    }
}