基本的に、アプリのサインイン/登録画面があり、図のように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:だけを表示します。
誰か助けて!