2014-03-30 113 views
2

我正在使用expandableList,每个子项都有其edittext输入一个数字......当按下子项时,edittext显示。如果不是,编辑文本保持不可见..但是当我点击编辑文本时,键盘显示数量(因为我设置类型输入:数字)只有1秒。之后,它转向常见的键盘。即使它备份到常见的键盘,不过,我不能类型上的EditText ...这里是我的代码无法在ExpandableListView子项中输入EditText

public View getChildView(int groupPosition, int childPosition, 
      boolean isLastChild, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     final String childText = (String) getChild(groupPosition, childPosition); 
     if (convertView == null) { 
      LayoutInflater inflater = (LayoutInflater) this.context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = inflater.inflate(
        R.layout.konsumsi_user_expand_listchild, null); 
     } 
     final TextView listChild = (TextView) convertView 
       .findViewById(R.id.lblListItemKonsumsi); 
     listChild.setText(childText); 
     final EditText kolomTakaran = (EditText) convertView 
       .findViewById(R.id.kolomTakaran); 
     listChild.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       kolomTakaran.setVisibility(View.VISIBLE); 

       if (childText == "kol") { 
        takaran = 50; 
       } else { 
        takaran = 0; 
       } 
       kolomTakaran.addTextChangedListener(new TextWatcher() { 

        @Override 
        public void onTextChanged(CharSequence s, int start, 
          int before, int count) { 
         // TODO Auto-generated method stub 
         Toast.makeText(context, "a", Toast.LENGTH_LONG).show(); 
        } 

        @Override 
        public void beforeTextChanged(CharSequence s, int start, 
          int count, int after) { 
         Toast.makeText(context, "b", Toast.LENGTH_LONG).show(); 
         // TODO Auto-generated method stub 

        } 

        @Override 
        public void afterTextChanged(Editable s) { 
         // TODO Auto-generated method stub 
         Toast.makeText(context, "c", Toast.LENGTH_LONG).show(); 
         takaran = Integer.parseInt(s.toString()); 
        } 
       }); 
      } 
     }); 

     return convertView; 
    } 

,这里是我的孩子XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="55dp" > 

    <TextView 
     android:id="@+id/lblListItemKonsumsi" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:paddingBottom="5dp" 
     android:paddingLeft="25dp" 
     android:paddingTop="5dp" 
     android:textSize="14dp" /> 

    <EditText 
     android:id="@+id/kolomTakaran" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:hint="isisisisisisi" 
     android:inputType="number" 
     android:textSize="14dp" 
     android:visibility="invisible" /> 

</RelativeLayout> 

希望有人能帮助me..thanks :d .. 对不起我的英文不好

回答

12

需要这些设置:

在UI代码:

expListView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); 

在AndroidManifest.xml的活动:

activity android:name=".YourActivity" android:windowSoftInputMode="adjustPan" 
+0

是的!它的工作原理...非常感谢你 – melandragem

+0

我们欢迎... upvote太,如果你发现它将有助于其他... :) – ASP

+0

我没有声誉的兄弟..所以我不能投票它 – melandragem