Мой дневник

27.06.2013

Пишем под Android по-человечески, ч.1, наверное

Filed under: компьютеры — sae762 @ 15:16

Дожили. (С)

Начал писать под андроид. Казалось бы, чего проще: поставить SDK, Eclipse, прочитать пару статей… Однако издержки интернета: не все афтары одинаково полезны. В частности, застрял на реализации Dialog-ов: примеры настолько мудреные, что осознать не удается. Благо есть StackOverflow.com 🙂

В итоге получилось все довольно просто:

1. При создании Activity (главного или еще какого) можно создать Dialog и навесить на него свой layout:

public class MainActivity extends Activity implements OnClickListener { //имплементируем что этот же класс будет получать события от кнопок
    private Dialog d; //это будет наш диалог

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//дизайн навешиваем
        findViewById(R.id.btExit).setOnClickListener(this);//кнопочки подключаем

        //и тут же создаем наш диалог (но не отображаем)
        d = new Dialog(this);
        d.setContentView(R.layout.dialog1);//навешиваем наш дизайн
        d.setTitle(“Custom Dialog”);//
        Button bt = (Button)d.findViewById(R.id.bt1);//находим кнопку в диалоге
        bt.setOnClickListener(this);//и – заворачиваем сигналы с кнопки на наш основной класс.
}

Дальше все так же просто. Поскольку этот же объект ловит нажатия кнопок, по нажатию определенной кнопки выдаем диалог:

    @Override
    public void onClick(View v) { //это наш метод – слушатель всех кнопок
        if (v.getId()==R.id.bt1) { //если нажата кнопка bt1
            d.show(); //показываем наш диалог
            return;
        }
        if (v.getId()==R.id.btExit) {
            finish();//если кнопка Exit – завершаем нашу программу
            return;
        }
        if (v.getId()==R.id.btDialog1) { //а это – если нажата кнопка в диалоге!
            String s=((EditText)d.findViewById(R.id.edit1)).getText().toString(); //вытаскиваем введенный в диалоге текст (если там есть поле ввода)
            d.dismiss(); //закрываем диалог
         ((TextView)findViewById(R.id.txvStatus1)).setText(“entered “+s); //делаем что-то полезное с данными из диалога
            return;
        }
    }

Вот, собственно, и все. Никаких заморочек, почти линейное программирование.

 

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: