2017-04-12 65 views
1

我有一个可扩展的联系人列表,也是一个editText。我想设置editText与用户从可展开列表中单击的项目。我可以通过toast获取项目的值。但我无法将setText设置为editText。我没有找到任何正确的方法来做到这一点。 这里是代码:如何将字符串放入可扩展listView的edittext中?

public class MyExpandableListAdapter extends BaseExpandableListAdapter { 

    private final SparseArray<Group> groups; 
    public LayoutInflater inflater; 
    public Activity activity; 
    FormEditText recip; 

    public MyExpandableListAdapter(Activity act, SparseArray<Group> groups) { 
     activity = act; 
     this.groups = groups; 
     inflater = act.getLayoutInflater(); 
    } 

    @Override 
    public Object getChild(int groupPosition, int childPosition) { 
     return groups.get(groupPosition).children.get(childPosition); 
    } 

    @Override 
    public long getChildId(int groupPosition, int childPosition) { 
     return 0; 
    } 

    @Override 
    public View getChildView(int groupPosition, final int childPosition, 
          boolean isLastChild, View convertView, ViewGroup parent) { 
     final String children = (String) getChild(groupPosition, childPosition); 
     TextView text = null; 
     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.listrow_details, null); 
     } 

     text = (TextView) convertView.findViewById(R.id.textView1); 
     text.setText(children); 
     convertView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.d("children",children); 
       //TODO 
       Toast.makeText(activity, children, 
         Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     return convertView; 
    } 

    @Override 
    public int getChildrenCount(int groupPosition) { 
     return groups.get(groupPosition).children.size(); 
    } 

    @Override 
    public Object getGroup(int groupPosition) { 
     return groups.get(groupPosition); 
    } 

    @Override 
    public int getGroupCount() { 
     return groups.size(); 
    } 

    @Override 
    public void onGroupCollapsed(int groupPosition) { 
     super.onGroupCollapsed(groupPosition); 
    } 

    @Override 
    public void onGroupExpanded(int groupPosition) { 
     super.onGroupExpanded(groupPosition); 
    } 

    @Override 
    public long getGroupId(int groupPosition) { 
     return 0; 
    } 

    @Override 
    public View getGroupView(int groupPosition, boolean isExpanded, 
          View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.listrow_group, null); 
     } 
     Group group = (Group) getGroup(groupPosition); 
     ((CheckedTextView) convertView).setText(group.string); 
     ((CheckedTextView) convertView).setChecked(isExpanded); 
     return convertView; 
    } 

    @Override 
    public boolean hasStableIds() { 
     return false; 
    } 

    @Override 
    public boolean isChildSelectable(int groupPosition, int childPosition) { 
     return false; 
    } 
} 
+0

您可以使用[处理器] (https://developer.android.com/reference/andr oid/os/Handler.html)为您的活动获取价值。 – ArbenMaloku

回答

0
((SelfSms)activity).runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      text.setText(children); 
     } 
    }); 

使用此,

 ExpandableListView listView = (ExpandableListView) findViewById(R.id.listView); 
     MyExpandableListAdapter adapter = new MyExpandableListAdapter(this,groups); 
     listView.setAdapter(adapter); 
     listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
      @Override 
      public boolean onChildClick(ExpandableListView parent, View v, 
             int groupPosition, int childPosition, long id) { 

       String children = groups.get(groupPosition).children.get(childPosition); 

       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         phone.setText(children); 
        } 
       }); 

       return false; 
      } 
     }); 

另外补充

 android:focusable="false"; 
     android:clickable="false"; 

为了您的TextView在子布局

+0

你能解释一下放哪里吗? – Avijit

+0

https://unsee.cc/disumeta/ 请检查链接。当用户点击子项时,它会显示在收件人字段中。 – Avijit

+0

正如我所提到的,我不知道如何在可扩展列表视图中设置editText上的文本....请参阅下面的图像链接。 [链接](https://ibb.co/fR2U1Q) – Avijit