Obtenir la position de la vue dans LinearLayout (Android)

Un avait une coutume ListView récemment. Ensuite, j'ai eu pour afficher tous les éléments de la liste sans barre de défilement. À la suite de la méthode pour placer les éléments dans LinearLayout j'ai changé mon code mais je ne peux pas lier onClickListener à la nouvelle mise en page. Dans la vue liste, j'ai utilisé la position var pour déterminer ce point de vue a été touché. Mais dans LinearLayout onClick de rappel n'a pas de paramètre de position.

Voici mon BasketActivity.class:

package ru.**.**;
public class BasketActivity extends Activity {
ArrayList<Item> items = new ArrayList<Item>();
SQLiteDatabase database;
Map<String, ?> all;
ItemAdapter adapter;
Item item2delete;
View deletingView;
private SharedPreferences settings;
private SharedPreferences settings2;
private Basket basket;
TextView basketSum;
private int position2delete;
private Map<String, ?> all2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_basket);
<..cutted..>
settings = getSharedPreferences("basket", 0);
settings2 = getSharedPreferences("price", 0);
basket = new Basket(settings, settings2);
all = basket.getList();
LinearLayout l1 = (LinearLayout) findViewById(R.id.l1);
MyDBAdapter myDBAdapter = new MyDBAdapter(getBaseContext());
myDBAdapter.open();
Cursor itemCursor = myDBAdapter.getItemsInBasket(all);
while (itemCursor.moveToNext()) {
String[] columns = itemCursor.getColumnNames();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < columns.length; i++) {
sb.append(columns[i]);
}
Item item = new Item();
item.setId(itemCursor.getString(0));
item.setArticul(itemCursor.getString(MyDBSchema.ITEM_ARTICUL));
item.setTitle(itemCursor.getString(MyDBSchema.ITEM_TITLE));
item.setPrice(itemCursor.getInt(MyDBSchema.ITEM_PRICE));
item.setPic80(itemCursor.getString(MyDBSchema.ITEM_PIC80));
item.setPic300(itemCursor.getString(MyDBSchema.ITEM_PIC300));
item.setMessage(itemCursor.getString(MyDBSchema.ITEM_MESSAGE));
item.setColor(itemCursor.getString(MyDBSchema.ITEM_COLOR));
item.setColorpos(itemCursor.getString(MyDBSchema.ITEM_COLORPOS));
items.add(item);
}
itemCursor.close();
myDBAdapter.close();
for (int position=0; position<items.size(); position++) {
LayoutInflater inflater = getLayoutInflater();
View v = inflater.inflate(R.layout.list_basket, null);
final Item i = items.get(position);
if (i != null) {
Item ei = (Item) i;
final TextView title = (TextView) v.findViewById(R.id.title);
if (title != null) title.setText(ei.title);
final TextView articul = (TextView) v.findViewById(R.id.articul);
if (articul != null) articul.setText(ei.articul);
TextView payed = (TextView) v.findViewById(R.id.payed);
if (payed != null) payed.setVisibility(TextView.GONE);
TextView status = (TextView) v.findViewById(R.id.status);
if (status != null) status.setVisibility(TextView.GONE);
Context context = getBaseContext();
ProgressBar p = new ProgressBar(context);
p.setIndeterminate(true);
Drawable d = p.getIndeterminateDrawable();          
WebImageView wiv = (WebImageView) v.findViewById(R.id.pic80);
wiv.setImageWithURL(context, ei.pic80, d);
final TextView price = (TextView) v.findViewById(R.id.price);
if (price != null) price.setText(ei.price_valid);
final TextView quant = (TextView) v.findViewById(R.id.quant);
if (quant != null) {
int q = (Integer) all.get(ei.articul);
if (q > 1) {
quant.setText("x "+q+" шт.");
}
}
}
v.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
deletingView = v;
int position = 0; //The order number of the view should be here!
Item item = (Item) items.get(position);
item2delete = item;
position2delete = position;
AlertDialog.Builder builder = new AlertDialog.Builder(getParent());
builder.setMessage(getString(R.string.suredelete))
.setCancelable(false)
.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
BasketActivity.this.removeItem();
deletingView.setVisibility(View.GONE);
}
})
.setNegativeButton(getString(R.string.no),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
l1.addView(v);
}
basketSum = (TextView) findViewById(R.id.basketsum);
basketSum.setText(Html.fromHtml(getString(R.string.basketsum) + ": <b>"
+ basket.getBasketPriceValid() + "</b>"));
}
protected void removeItem() {
basket.remove(item2delete);
Context context = getApplicationContext();
CharSequence text = getText(R.string.item_deleted);
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
basketSum.setText(Html.fromHtml(getString(R.string.basketsum) + ": <b>"
+ basket.getBasketPriceValid() + "</b>"));
items.remove(position2delete);
}
}

Ma question est comment faire pour obtenir l'affichage de la position à onClick(View v)?

  • définir la position'