1

基本的に、アプリのサインイン/登録画面があり、図のようにExpandableListViewを使用して作成する必要があります。

グループ内の子供の位置に基づいて、私はさまざまな見解を膨らませました。したがって、位置0と1については、2つの異なるEditTextボックスを膨らませました。

私の問題は、両方のボックスに入力されたテキストを取得できないことです。

このボックスでは連続して入力できますが、[サインイン]ボタンをクリックすると、getTextを使用してユーザー名ボックスとパスワードボックスから取得した文字列は両方ともnullになります。

サインインのスクリーンショットhttp://img801.imageshack.us/img801/5544/shot000005w.png ユーザー名Toastが空白ですhttp://img21.imageshack.us/img21/3825/shot000006y.png パスワードToastが空白ですhttp:/ /img542.imageshack.us/img542/8804/shot000007.png

CustomExpandableAdapterからgetChildViewを取得します。

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
   v = null;

   position = 0;
   position=getChildId(groupPosition, childPosition);

   if(position==0) //draw the username editbox
   {
    v = inflater.inflate(R.layout.username, parent, false);
    Element c = (Element)getChild( groupPosition, childPosition );
    username = (EditText)v.findViewById( R.id.username);

    if( username != null )          
         username.setHint(c.getElement());

    }
   else if(position==1)
   {
       if(convertView == inflater.inflate(R.layout.password, parent, false))
        return convertView;
       v = inflater.inflate(R.layout.password, parent, false);
       convertView = inflater.inflate(R.layout.password, parent, false);
        Element c = (Element)getChild( groupPosition, childPosition );
        password = (EditText)v.findViewById( R.id.password);
    if( password != null )          
         password.setHint(c.getElement());

   }
   else if (position>1023 && position<1028)
   {
        v = inflater.inflate(R.layout.child_row, parent, false);
        Element c = (Element)getChild( groupPosition, childPosition );
        et = (EditText)v.findViewById( R.id.et);


    if( et != null )            
         et.setHint(c.getElement());
   }

   else if(position==1028)
    {

        v = inflater.inflate(R.layout.gender, parent, false);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
          context, R.array.gender, android.R.layout.simple_spinner_item );
        adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
        s = (Spinner) v.findViewById( R.id.spinner_gend );
        s.setAdapter( adapter );
    }

   else if(position==2)  //Forgot Button
   {
       v = inflater.inflate(R.layout.forgot, parent, false);
       Button forgot = (Button)v.findViewById(R.id.fpb);
       forgot.setOnClickListener(this);


   }


   else if(position==3)  //Sign-in Button
   {
       v = inflater.inflate(R.layout.sign_in_button, parent, false);
       ImageButton sign_in = (ImageButton)v.findViewById(R.id.sign_in_button);
       sign_in.setOnClickListener(this); 

}
   return v;
}

その後、コードの中で、[サインイン]ボタンのonClickがあります。

case R.id.sign_in_button: {
        String user_name = username.getText().toString();
        String pass_word=password.getText().toString();
        Toast.makeText(context,"u:"+ user_name, 3000).show();
        Toast.makeText(context, "p:"+pass_word, 3000).show();
                    //Other unrelated Database Code


    }

ここで、トーストは常にu:とp:だけを表示します。

誰か助けて!

4

1 に答える 1

3

私はTextWatcherを使用しました(これまでは正しく機能しませんでした)コードは次のとおりです:

@Override
public void afterTextChanged(Editable s) {

    user_name=s.toString();
}
@Override
public void beforeTextChanged(CharSequence s, int start,
        int count, int after) {
    // TODO Auto-generated method stub

}
@Override
public void onTextChanged(CharSequence s, int start, int before,
        int count) {
    // TODO Auto-generated method stub


}
于 2012-08-01T02:22:41.257 に答える