Как найти, какая динамическая кнопка нажата в android

я создал динамическую кнопку в activity on button click. Когда я создал больше,чем кнопка on в activity, onclick работает для самой последней кнопки, поскольку я назначил id каждой кнопке. как определить, какая динамическая кнопка нажата, кроме последней кнопки.
Вот фрагмент моего кода

public void dynamicButton()
    {
       // int x=0;
        preferences = PreferenceManager.getDefaultSharedPreferences(TimeStudy.this);
        value = preferences.getInt("value", 0);
        //myButton = new Button(this);



          //  if (value > x)
        if ( i <= value) {
               myButton= new Button(this);
               myButton.setId(value);
               BtnId.add(value);
               myButton.setTag(value);

                LinearLayout ll = (LinearLayout) findViewById(R.id.dynamiclayout);
                ll.setOrientation(LinearLayout.VERTICAL);
                ll.setPadding(10, 300, 10, 10);
                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                        LinearLayout.LayoutParams.WRAP_CONTENT);

                myButton.setLayoutParams(lp);
                btnid= myButton.getId();
                myButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                       switch (btnid) {
                           case 1:case 2:case 3:case 
                               Intent intent = new Intent(TimeStudy.this, CollectSample.class);
                           startActivity(intent);
                               break;
                       }

                    }
                });

                ll.addView(myButton, lp);
                i++;

            }
        switch (btnid) {
            case 1:case 2:case 3:
                    SharedPreferences average = getSharedPreferences("avg", 0);
                String avgbtn = average.getString("btnavg", "");


                settings = getSharedPreferences("dynamicbtname", 0);
                btnname = settings.getString("btnname", "");
                ar.add(btnname);

                String styledText = "<font color='#008000'>" + btnname + "</font>" + "&nbsp" + "&nbsp" + "&nbsp"
                        + "<small>"
                        + avgbtn + "</font>"
                        + "<small>";
                myButton.setText(Html.fromHtml(styledText));

                myButton.setGravity(Gravity.CENTER | Gravity.LEFT);
                break;
        }

я хочу результат, как это, даже если после создания всех трех кнопок и 1 кнопка нажата не показывает на первой кнопке.
Введите описание изображения здесь

I get this if I pressed 1 button after creation of 2 or third button data returns to most recent button.
Введите описание изображения здесь

любая помощь appriciated спасибо заранее.

1 ответ

  1. Есть два способа.

    1) Проверка путем сравнивать его к переменной взгляда переданной внутри

    2) Используйте реализацию OnClickListener, которая знает, какой это (с помощью различных классов или с помощью одного класса с параметром в нем).