アダプターの getView メソッドの位置パラメーターの意味を詳しく理解したいと思います。ListView で、Textview とボタンでカスタム アダプターを設定したいと思います。
コードは後述します。
public View getView(final int position, View convertView, ViewGroup parent)
{
try
{
if(convertView==null)
{
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.contactslist, null);
name = (TextView) convertView.findViewById(R.id.contactname);
number = (TextView) convertView.findViewById(R.id.contactmobnum);
call=(Button)convertView.findViewById(R.id.callcust);
}
name.setText(cursor.getString(1));
number.setText(cursor.getString(2));
cursor.moveToNext();
call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
Log.i("Testing","Position selected is "+position);
}
});
} catch(Exception e) {
Log.d("Testing", "isDefault::: exec"+e);
}
return convertView;
}
カーソル内に合計 10 個のアイテムがあり、5 番目の位置の呼び出しボタンをクリックすると、どのような結果が期待されますか?
10か5か?
以前に Base Adapter を使用して 10 として経験したため、混乱していますが、上記のコードでは 5 が返されます。行がリストに追加されている間だけ位置が行 ID を返すのか、それとも選択した行 ID を返すのかを理解してください?
理解が深まるのを楽しみにしています