начинающий горе тумблера? - PullRequest
0 голосов
/ 07 ноября 2011

только что начал возиться с Android SDK и нужно подумать об оптимизации моего кода. Я искал и сделал учебники, но он просто не щелкает по массивам переключателей.

это пример того, что у меня есть, вы можете увидеть, если я скажу 128 кнопок, это будет грязно. мне также нужно знать проверенное состояние кнопки

my activity class
private ToggleButton seqButton1;
private ToggleButton seqButton2;
blah.....
private ToggleButton seqButton128;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

seqButton1 = (ToggleButton) findViewById(R.id.btn1);
seqButton2 = (ToggleButton) findViewById(R.id.btn2);
....blah

любая помощь или точка в правильном направлении была бы туз та

редактирование: это мой новый код, который вылетает

    package trkrPkg.trackr;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout;
import android.widget.Toast;
import android.widget.ToggleButton;

public class TrackerActivity extends Activity implements OnCheckedChangeListener {

     @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
       Toast.makeText(this, "Toggle Button:" + buttonView.getId() + " is checked: " + isChecked, Toast.LENGTH_SHORT).show();
    }


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        LinearLayout layout = (LinearLayout)findViewById(R.id.my_toggle_container);

        for (int i = 0; i<128; i++) {
            ToggleButton tgl = new ToggleButton(this);
            tgl.setId(i);
            tgl.setOnCheckedChangeListener( this);
                layout.addView(tgl); 
           }

    }
}

1 Ответ

0 голосов
/ 07 ноября 2011

Вы можете добавить кнопки ToggleButtons динамически вместо их объявления в XML и

 public class YourActivity extends Activity implements OnCheckedChangeListener {

    //..

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
       Toast.makeText(this, "Toggle Button:" + buttonView.getId() + " is checked: " + isChecked, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

       LinearLayout layout = (LinearLayout)findViewById(R.id.my_toggle_container);

       //..
       for (int i = 0; i<128; i++) {
        ToggleButton tgl = new ToggleButton(this);
        tgl.setId(i);
        tgl.setOnCheckedChangeListener(this);
            layout.addView(tgl); 
       }
       //...
    }
}//end class
...