私の ListView には、列のように配置された多数のブロックが含まれています。
現時点では、行番号はわかりますが、列を取得するのに苦労しています。
私が探していると思うのは、どちらかを発見する方法です
- ユーザーがタップしたビュー
- タップの水平座標とそれを計算します。
- 私が考えていなかった他の方法。
実際の質問: ListView から列番号を取得するにはどうすればよいですか?
onClick(View view)
リストビューにバインドしたアダプタークラスから、タップされたビューのメソッドを実装してみることができます。
次に例を示します。
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
ContactHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ContactHolder();
holder.imgPhone = (ImageView) row.findViewById(R.id.imgPhone);
holder.imgPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + contactArrayList.get(position).phone_number));
context.startActivity(callIntent);
}
});
row.setTag(holder);
} else {
holder = (ContactHolder) row.getTag();
return row;
}