2016-09-24 146 views
1

如何从编辑文本中获取值。如何从列表视图中获取文本值编辑文本功能.....?

大家好,我正在面对一个Android任务的问题,其中有许多编辑文本可用的编辑文本。

enter image description here

我需要从1到4的所有编辑的文本得到的值..? 以下是我的适配器的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  


      } 
     }); 
+0

在你的适配器中有没有任何按钮? – sushildlh

+0

当你想获得值任何按钮点击事件? –

+0

是按钮有一个保存按钮可用 – sunny

回答

0

您可以实现这样一个每个的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; 

}

+0

你能用我的代码更新你的答案..? – sunny

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(); 
+0

没有得到正确的值 – sunny

+0

@sunny:我对之前的小更新。你可以再试一次! –

+0

好吧兄弟我试试 – sunny

0

我希望这段代码可以帮助您

用的适配器单元位置

关注该代码

在getView

(适配器类)

edittext.getText().toString(); 
+0

解释更多..请使用自定义适配器,请使用 – sunny

+0

? –

+0

是兄弟........ – sunny

0

申报用于使用适配器视图

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列表视图这在声明

protected AdapterView.OnItemClickListener messageClickedHandler; 

点击事件是来自用户定义的类的数组列表对象,getStrName()。

+0

它是如何工作的? – sunny

+0

看到这个http://stackoverflow.com/a/39659915/6798867,它可以帮助你@sunny –

+0

这是不是与我的问题兄弟 – sunny

相关问题