【问题标题】:How to get text value from Listview Edit Text feild.....?如何从 Listview 编辑文本字段中获取文本值.....?
【发布时间】:2016-09-24 07:38:33
【问题描述】:

如何从编辑文本中获取值。

大家好,我正面临一个 android 任务的问题,其中编辑文本中有很多可用的编辑文本。

我需要从 1 到 4 的所有编辑文本中获取值..? 下面是我的Adapter的get view方法。

@Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final ViewHolder holder;
        if (convertView == null) {

            convertView = LayoutInflater.from(getContext()).inflate(R.layout.social_media_row, null);

            holder = new ViewHolder();

            holder.social_id = (EditText) convertView.findViewById(R.id.socialMediaId);

            convertView.setTag(holder);

            holder.social_id.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                }
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                }
                @Override
                public void afterTextChanged(Editable s) {
                  Log.i("AfterTextChange",holder.social_id.getText().toString());
                }
            });
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        SocialMediaModel contact = contactsList.get(position);

        holder.social_id.setText(contact.getSocialMediaId());

        holder.social_id.setTag(contact);
        return convertView;
    }

更新:我想在用户单击按钮时获取值

savebtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

  /here what i can do    


            }
        });

【问题讨论】:

  • 适配器中有按钮吗??
  • 什么时候想获取值??任何按钮点击事件?
  • 是按钮 有一个保存按钮可用
  • 如果四个EDITTEXT是固定的?
  • 请使用包含更多编辑文本的列表视图,以便用户必须滚动。你会看到你在滚动时松开了你的文本。先解决这个问题。

标签: android listview android-edittext getvalue


【解决方案1】:
        //at top Globally declare it
        private String[] valueList = new String[];

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
                    final ViewHolder holder;
                    if (convertView == null) {

                        convertView = LayoutInflater.from(getContext()).inflate(R.layout.social_media_row, null);

                        holder = new ViewHolder();

                        holder.social_id = (EditText) convertView.findViewById(R.id.socialMediaId);

                        convertView.setTag(holder);

                        holder.social_id.addTextChangedListener(new TextWatcher() {
                            @Override
                            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                            }
                            @Override
                            public void onTextChanged(CharSequence s, int start, int before, int count) {

                         valueList[pos] = s.toString();

                            }
                            @Override
                            public void afterTextChanged(Editable s) {
                              Log.i("AfterTextChange",holder.social_id.getText().toString());
                            }
                        });
                    } else {
                        holder = (ViewHolder) convertView.getTag();
                    }

                    SocialMediaModel contact = contactsList.get(position);

                    holder.social_id.setText(contact.getSocialMediaId());

                    holder.social_id.setTag(contact);
                    return convertView;
                }

// method to  get Values
public String[] getValueList(){
        return valueList;
    }

现在在按钮点击事件上放这段代码

String[] myvl = yourAdapteName.getValueList();

【讨论】:

  • @sunny:我对之前的版本有一些小的更新。请您再试一次!
【解决方案2】:

您可以使用列表位置作为参数为每个 EditText 实现这样的方法:

public String getValueFromFirstEditText(int position){
      //here you need to recreate the id for the first editText
     String result = textValues.get("theFirstEditTextAtPos:"+position);
     if(result ==null)
          result = "default value";
 return result;

}

【讨论】:

    【解决方案3】:

    希望这段代码对你有所帮助

    使用适配器单元格位置

    遵循此代码

    在getView中(在适配器类中)

    edittext.getText().toString();
    

    【讨论】:

    • 解释更多..请
    • 你使用自定义适配器?
    • 你能发那堂课吗
    • 这4个edittext是否属于listview的同一个单元格?
    • holder.item_Image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { holder.social_id.getText().toString; } });
    【解决方案4】:

    在你的声明中声明这个

        protected AdapterView.OnItemClickListener messageClickedHandler;
    

    使用适配器视图的列表视图的单击事件

       messageClickedHandler = new AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView parent, View view, int position, long id) {
                String strName=rowItems.get(position).getStrName();
                Toast.makeText(getApplicationContext(),"Name : "+strName , Toast.LENGTH_LONG).show();
                }
            };
            list.setOnItemClickListener(messageClickedHandler);
        }
    

    rowItems 是一个数组列表 Object ,来自用户定义的类的 getStrName()。

    【讨论】:

    • 这与我的问题无关,兄弟
    猜你喜欢
    • 2011-05-30
    • 1970-01-01
    • 2021-08-17
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2021-10-06
    相关资源
    最近更新 更多