<ToggleButton> onClickListener - кнопка Создать / Удалить + добавить контент к кнопке - PullRequest
1 голос
/ 19 февраля 2012

У меня есть эта проблема с моим ToggleButton.Я хочу, чтобы он создавал / удалял кнопку при переключении, и в то же время добавляет к ней содержимое / функции, например, нарисованные и т. Д.

Это текущий код:

            public class BillardScoreboardActivity extends Activity {
/** Called when the activity is first created. */
Button minuskegle, minuskugle, pluskugle, pluskegle, plusmidkegle, minusmidkegle, miss;
ToggleButton toggle;
LinearLayout bottomlayout;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    toggle = (ToggleButton) findViewById(R.id.bRedGreen);
    toggle.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            pluskugle = (Button) findViewById(R.id.bBallhole);
            minuskugle = (Button) findViewById(R.id.bBallhole);

            pluskegle = (Button) findViewById(R.id.bKegle);
            minuskegle = (Button) findViewById(R.id.bKegle);

            plusmidkegle = (Button) findViewById(R.id.bKeglemid);
            minusmidkegle = (Button) findViewById(R.id.bKeglemid);

            bottomlayout = (LinearLayout) findViewById(R.id.bottomlayout);

            miss = (Button) findViewById(R.id.bMiss);

        if(toggle.isChecked())
        {
            minuskugle.setBackgroundResource(R.drawable.redballinhole);
            minuskegle.setBackgroundResource(R.drawable.redkegle);
            minusmidkegle.setBackgroundResource(R.drawable.midkegleminus);
            miss.setBackgroundResource(R.drawable.missbutton);

            miss.setVisibility(View.VISIBLE);

        }

        else 
        {
            pluskugle.setBackgroundResource(R.drawable.whiteballinhole);
            pluskegle.setBackgroundResource(R.drawable.kegleb);
            plusmidkegle.setBackgroundResource(R.drawable.midkegleplus);
            miss.setVisibility(View.GONE);

        }

        }

    });
}

В настоящее время проблема заключается в том, что он не может найти (тест кнопки) в этой части кода:

            else 
        {
            pluskugle.setBackgroundResource(R.drawable.whiteballinhole);
            pluskegle.setBackgroundResource(R.drawable.kegleb);
            plusmidkegle.setBackgroundResource(R.drawable.midkegleplus);
            bottomlayout.removeView(buttontest);

        }

И, как упоминалось ранее, вторая проблема заключается в том, чтобы кнопка наследовала некоторые функции / содержимое.

enter image description here для увеличенной версии: http://i.imgur.com/KxKvh.png

Кстати ... Каждый раз, когда я запускаю приложение, оно дает мне 2 приложения на выбор, из которых только нижняяодна работа:

enter image description here

1 Ответ

1 голос
/ 19 февраля 2012

Полагаю, проблема в том, что начальное состояние переключателя «проверено». Это означает, что когда вы щелкнете по нему в первый раз, isChecked () вернет false и остальная часть вашего кода будет выполнена. Но в этот момент тест кнопки еще не был добавлен в нижний слой.

Я рекомендую вам иметь кнопку внутри макета по умолчанию и вызывать buttontest.setVisibility (View.GONE), когда вы хотите скрыть ее, и buttontest.setVisibility (View.VISIBLE), когда ее нужно показать. Что касается вашего второго вопроса, просто вызовите setBackgroundResource / Drawable, чтобы добавить контент (как вы уже делали это с другими кнопками). Если вы говорите, что хотите добавить функциональность, я предполагаю, что вы собираетесь что-то сделать, когда кнопка нажата? Если да, добавьте View.OnClickListener. Надеюсь, я смогу вам помочь.

...